Связывание объектных файлов с исполняемым файлом не работает

Я пытаюсь скомпилировать пример из dlib.net, используя g++. Я считаю, что прямая компиляция примера в execuable прекрасно работает, используя:

g++ -std=c++11 -O3 -I/usr/lib /usr/lib/dlib/all/source.cpp -lpthread -lX11 optimization_ex.cpp -o optimiation_ex

Но когда я сначала скомпилирую исходный код в объектные файлы (1), а затем добавлю ссылку (2),

(1)

g++ -std=c++11 -O3 -I/usr/lib -c /usr/lib/dlib/all/source.cpp -lpthread -lX11 -o /usr/lib/dlib/all/source.o

g++ -std=c++11 -O3 -I/usr/lib -c optimization_ex.cpp -lpthread -lX11 -o optimization_ex.o

(2)

g++ /usr/lib/dlib/all/source.o optimization_ex.o -o optimization_ex

исполняемый файл не может быть скомпилирован, и g ++ жалуется на неопределенные ссылки.

Что происходит за этим поведением? И как я могу скомпилировать исполняемый файл из объектных файлов?

0 ответов

Другие вопросы по тегам