Невозможно скомпилировать разделяемые.o файлы с помощью g++
Когда я скомпилирую с помощью следующей команды:
g ++ -fPIC -o obj / buffer.o buffer.cpp
Я получаю следующую ошибку:
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: в функции
_start': (.text+0x20): undefined reference to
главный'
Мне кажется, с флагом -fPIC мне не нужна основная функция. Я получаю эту ошибку со всеми файлами cpp. У меня есть main.cpp, в котором есть функции общей библиотеки. Вы можете получить исходный код по следующему адресу:
Есть идеи? Я знаю, что могу использовать двоичный файл ld, чтобы поместить все o файлы в a, так что, как только они закончат, мне просто нужна помощь для встраивания их всех в разделяемые файлы.o
1 ответ
Я думаю, что я ответил на мой вопрос. Я добавил -c к команде, и это, кажется, сработало. Вот команда, которую я использовал:
g++ -fPIC -c -o obj/list.o list.cpp
Это один из нескольких файлов cpp, и все вроде бы работает.