GCC создает общий объект вместо исполняемого двоичного файла
У меня есть библиотека, которую я строю. Все мои объекты компилируются и связываются последовательно, когда я запускаю одно из:ar rcs lib/libryftts.a $^
gcc -shared $^ -o lib/libryftts.so
в моем Makefile. Я также могу успешно установить их в/usr/local/lib
Когда я тестирую файл с помощью nm, все функции присутствуют. Моя проблема в том, что когда я бегуgcc testing/test.c -lryftts -o test && file ./test
или жеgcc testing/test.c lib/libryftts.a -o test && file ./test
это говорит:
test: ELF 64-bit LSB shared object
вместоtest: ELF 64-bit LSB executable
как я и ожидал. Что я делаю неправильно?