C: kompilieren Sie einige Objekte (für eine "shared library") ohne main() nicht?

Von dem, was ich gelernt habe, muss ich mit diesem Schritt bereiten Sie für eine freigegebene Bibliothek:

gcc -fPIC libfoo.c -o libfoo.o

Und dann verlinke ich es. Ich hatte versucht, ein makefile zu Hilfe, die in diese Schritte, aber es scheint die Fehler, die jetzt passieren.

Dieser tritt auf, wenn ich die make-Datei:

foo@box:~/Projects/so$ gcc -fPIC ./libfoo.c -o libfoo.o
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

Wie kann ich kompilieren Sie die Bibliothek-Datei, ohne die main-Funktion, da es nicht ein Programm, und ist vorgesehen, um eine Bibliothek?

Wenn es hilft mein Programm ist im Grunde so (interpretiert)

(stdio and openssl headers here)

(debugging macro definitions here)

(two functions, gettime() and opensslrandom() defined here)

Scheine ich Probleme zu haben das Verständnis über die Makros, wie Sie in der gemeinsam genutzten Bibliothek am Ende sind Sie nutzlos in der gemeinsam genutzten Bibliothek? Ich enthalten Sie in libfoo.h enthalten sein, obwohl ich habe noch um zu sehen, ob die Makros arbeiten.

InformationsquelleAutor Tim N. | 2011-03-27
Schreibe einen Kommentar