将目标文件链接到可执行文件不起作用

时间:2018-11-16 12:51:30

标签: c++ compilation linker-errors dlib object-files

我正在尝试使用g ++从dlib.net编译示例。我发现直接使用以下示例将示例编译为可执行文件即可:

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 个答案:

没有答案