O GCC cria um objeto compartilhado em vez de um binário executável
Eu tenho uma biblioteca que estou construindo. Todos os meus objetos são compilados e vinculados sucessivamente quando eu executo um dos seguintes:ar rcs lib/libryftts.a $^
gcc -shared $^ -o lib/libryftts.so
no meu Makefile. Também consigo instalá-los com êxito no/usr/local/lib
Quando eu testo o arquivo com nm, todas as funções estão lá. Meu problema é que quando corrogcc testing/test.c -lryftts -o test && file ./test
ougcc testing/test.c lib/libryftts.a -o test && file ./test
diz:
test: ELF 64-bit LSB shared object
ao invés detest: ELF 64-bit LSB executable
como eu esperaria. O que estou fazendo errado?