2014-11-23 42 views
0

我想一个项目,用下面的命令链接:在/ usr /斌/劳工处:找不到-lboost_thread-MT

g++ build/test.o -o bin/test -pthread -L lib -L /home/alexander/opt/lib -lboost_thread-mt 

这将导致以下错误:

/usr/bin/ld: cannot find -lboost_thread-mt 
collect2: error: ld returned 1 exit status 

然而,boost库安装在/home/alexander/opt/lib目录中。为什么链接器找不到boost库?我也试图与-I代替如果-L具有相同的结果联系起来...的/home/alexander/opt/lib

内容为/home/alexander/opt/lib/boost_1_57_0

+1

你用'-L'指向的目录必须包含'libboost_thread-mt.so'。如果不是这种情况,请将其更改(例如,转到'/ home/alexander/opt/lib/boost_1_57_0'。 – filmor 2014-11-23 13:08:03

+1

而'-I'完全与此无关,它是用于包含目录预处理器来查找你包含的文件) – filmor 2014-11-23 13:08:54

+0

好的,似乎我没有安装boost。任何人都知道如何安装boost?我想这是一个令人难以置信的复杂和疯狂的过程...但告诉我无论如何 – Alex 2014-11-23 13:10:03

回答

1

变化libboost_thread-MT到libboost_thread,先找到libboost_thread.so和libboost_thread.a的地址,然后进行软链接到这些文件在同一个地址, 所以它应该是:

ln -s /...libboostSourceFiles.../libboost_thread.so /..RequestTOmtFiles.../libboost_thread-mt.so 

它适用于其他libboost -mt文件,比如序列化,iostreams,程序选项

相关问题