GCC erstellt ein gemeinsames Objekt anstelle einer ausführbaren Binärdatei
Ich habe eine Bibliothek, die ich baue. Alle meine Objekte werden nacheinander kompiliert und verknüpft, wenn ich eines der folgenden Befehle ausführe:ar rcs lib/libryftts.a $^
gcc -shared $^ -o lib/libryftts.so
in meinem Makefile. Ich kann sie auch erfolgreich in @ installier/usr/local/lib
Wenn ich die Datei mit nm teste, sind alle Funktionen vorhanden. Mein Problem ist, dass, wenn ich @ laufgcc testing/test.c -lryftts -o test && file ./test
odergcc testing/test.c lib/libryftts.a -o test && file ./test
es sagt
test: ELF 64-bit LSB shared object
Anstatt vontest: ELF 64-bit LSB executable
wie ich es erwarten würde. Was mache ich falsch