PDA

View Full Version : MinGW e programma senza librerie


71104
08-02-2006, 15:05
salve a tutti; utilizzo il MinGW su Windows e con questo vorrei riuscire a creare una immagine eseguibile privata delle librerie standard del MinGW, ma soprattutto vorrei che il vero entry point del programma (quello il cui RVA si trova negli headers) fosse la mia main, non quella quelle librerie di default del MinGW appunto. in altre parole penso che se riesco a settare la mia main come entry point dell'immagine il MinGW non avrà ragione di utilizzare anche le sue librerie predefinite... comunque mi interessa anche risparmiare spazio, quindi se per caso qualcosa delle librerie ci va a finire lo stesso mi piacerebbe sapere come eliminarla; la cosa essenziale è l'entry point. ovviamente trovandomi su Windows il formato dell'immagine che voglio produrre è il PE.

finora ho provato con la seguente command line:
gcc -std=c99 $(CFLAGS) -o prova.exe main.c -Wl,--entry,main
dove CFLAGS era definito in un altro makefile come:
export CFLAGS=-W -Wall -pedantic -static -nostdlib -nostdinc -fno-builtin -fno-exceptions -fomit-frame-pointer -ffreestanding

però così facendo ottengo un errore in fase di link:

gcc -std=c99 -W -Wall -pedantic -static -nostdlib -nostdinc -fno-builtin -fno-e
xceptions -fomit-frame-pointer -ffreestanding -o prova.exe main.c -Wl
,--entry,main
C:\MinGW\bin\..\lib\gcc-lib\mingw32\3.2.3\..\..\..\..\mingw32\bin\ld.exe: warnin
g: cannot find entry symbol main; defaulting to 00401000
C:\DOCUME~1\mrnt\IMPOST~1\Temp/cc0kaaaa.o(.text+0x9f):main.c: undefined referenc
e to `__main'
C:\DOCUME~1\mrnt\IMPOST~1\Temp/cc0kaaaa.o(.text+0xa4):main.c: undefined referenc
e to `pb'
make: *** [prova.exe] Error 1

come faccio? :help: :help: :help:

71104
08-02-2006, 15:08
ah a proposito: poi dopo aver creato l'exe mi interessa anche come produrre una DLL con le stesse caratteristiche: entry point "vero" e niente librerie predefinite :)

71104
08-02-2006, 22:52
up :help:

shinya
09-02-2006, 08:09
Ma tu perchè devi sempre provare a fare cose poco normali? Non puoi accontentarti di programmare come gli altri? :)

71104
09-02-2006, 12:22
questa frase non mi è molto d'aiuto... :mc:

suvvia, coi compilatori Microsoft è una cosa semplicissima possibile che col MinGW nessuno sappia come fare?? :cry:

71104
09-02-2006, 18:39
vabbè me lo devo scoprire da me! :cry:

DanieleC88
11-02-2006, 14:42
vabbè me lo devo scoprire da me! :cry:
Con quell'avatar chi vuoi persuadere ad aiutarti? :Prrr:

;)

71104
11-02-2006, 16:06
Con quell'avatar chi vuoi persuadere ad aiutarti? :Prrr:

;) STAI SCHERZANDO, MA LO SAI CHI È??? O_O

DanieleC88
11-02-2006, 16:12
STAI SCHERZANDO, MA LO SAI CHI È??? O_O
Veramente no, ma incute un po' timore. :D
Non vorrei dire ca**ate, ma mi sembra un particolare di una copertina del Clapton. Ma forse si assomigliano solamente.

71104
11-02-2006, 18:57
Veramente no, ma incute un po' timore. :D
Non vorrei dire ca**ate, ma mi sembra un particolare di una copertina del Clapton. Ma forse si assomigliano solamente. nono, hai centrato in pieno: è lui, il grande Enrico Tonnellatadiapplausi :) :) :)
è il mio genere preferito, il mio cantante preferito e nello specifico quello è la mia copertina preferita!!!! :cry: :cry: :cry:
è una copertina piena di significati, per non parlare del contenuto del CD che è assolutamente MERAVIGLIOSO!!!


*e il thread fu mosso nella sezione OffTopic* :stordita:


se qualcuno ha voglia di tornare In-Topic e di dirmi come faccio a risolvere il problema iniziale gliene sono grato! :cry:

DanieleC88
12-02-2006, 10:34
nono, hai centrato in pieno: è lui, il grande Enrico Tonnellatadiapplausi :) :) :)
Tonnellatadiapplausi!!! AAAARGHHHH!!!! :D :D :D
è il mio genere preferito, il mio cantante preferito e nello specifico quello è la mia copertina preferita!!!! :cry: :cry: :cry:
è una copertina piena di significati, per non parlare del contenuto del CD che è assolutamente MERAVIGLIOSO!!!
Non lo conosco, DEVO rimediare.


*e il thread fu mosso nella sezione OffTopic* :stordita:

se qualcuno ha voglia di tornare In-Topic e di dirmi come faccio a risolvere il problema iniziale gliene sono grato! :cry:
Ecco, per tornare davvero in topic, non riesco a capire perché ti dia quegli errori. La cosa è strana perché i flag ci sono tutti, almeno così sembra. Adesso faccio qualche prova con gcc e se non va provo con MinGW attraverso Dev-C++ (eh, si, Winzozz :p).

DanieleC88
12-02-2006, 10:46
Provato con un file praticamente vuoto, con un entry point personalizzato, gcc non mi dice niente e compila tranquillo. Devo provare anche con MinGW. Non è che devi aggiornare il compilatore?

71104
12-02-2006, 11:23
Provato con un file praticamente vuoto, con un entry point personalizzato, gcc non mi dice niente e compila tranquillo. Devo provare anche con MinGW. Non è che devi aggiornare il compilatore? :mbe: non credo proprio... senti, provo a mettere anche io un file vuoto con solo il main