Связывание объектных файлов с исполняемым файлом не работает - PullRequest
0 голосов
/ 16 ноября 2018

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

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 ++ жалуется на неопределенные ссылки.

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

...