【发布时间】:2015-11-30 06:46:21
【问题描述】:
我在 /PATH 目录中有一个静态库,当我尝试使用带有 link_directories 的库时,如下所示:
link_directories(/PATH)
target_link_libraries(CppHello libHelloLib.a)
我收到一条错误消息:
ld: library not found for -lHelloLib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [/PATH] Error 1
make[2]: *** [CMakeFiles/CppHello.dir/all] Error 2
make[1]: *** [CMakeFiles/CppHello.dir/rule] Error 2
相反,我必须按如下方式指定路径才能使其工作:
target_link_libraries(CppHello /PATH/libHelloLib.a)
可能出了什么问题?这是 Mac OS X 上 Cmake 的问题,还是我错过了什么?
【问题讨论】:
-
另一个你调用
link_directories()的问题在创建可执行文件:link_directories只影响目标,在它之后创建:stackoverflow.com/questions/33559356/… -
@Tsyvarev 在我看来这才是真正的答案。有前缀和后缀的问题在这里似乎没有造成任何问题,我对 CMake 的测试表明它知道删除它们。
-
@bames53:是的,命令的顺序肯定会影响正确性。问题是我只有在发布答案后才注意到这种错误。那么问题只是重复的,我认为在这种情况下不需要提供答案。