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 как я и ожидал. Что я делаю неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос