C程序中要link某个动态库,比如放在 /usr/bin/boost/lib 下的 libboost_thread.so,而 Makefile 中没有指明在哪个路径下去 link,这时 link 可能会找不到正确的动态库。例如会得到类似下面的错误:
g++ -o ../bin/thread ../obj/main.o ../obj/dmd.o ../obj/thread.o -lboost_thread -lboost_system
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status
make: *** [../bin/thread] Error 1
解决办法有二,其一,从 Makefile 入手:
BOOST_LIB_DIR = /usr/bin/boost/lib
LNK_OPT = -L$(BOOST_LIB_DIR) -lboost_thread -lboost_system
明确告诉 make 从哪里去 link 动态库文件。
其二,修改环境变量 LIBRARY_PATH:
</