CMake 使用“link_directories”定位库时遇到困难
尝试使用 CMake 的“link_directories”链接共享库 libprotobuf.so 时命令时,用户遇到链接器错误,指示对库中函数的未定义引用。尽管库位于指定目录中,但 CMake 无法找到它。
解决方案
问题源于 CMake 命令在CMakeLists.txt 文件。 “link_directories”命令必须在“add_executable”命令之前调用,而不是在“target_link_libraries”命令之前调用。
说明
“add_executable”创建可执行目标,而“link_directories”指定应搜索哪些目录对于共享库。通过将“link_directories”命令放在“add_executable”命令之后,CMake 在尝试链接可执行文件时无法找到库。修改的 CMakeLists.txt
link_directories(/usr/lib/x86_64-linux-gnu) add_executable(test main.cpp) target_link_libraries(test protobuf)一旦命令的顺序被更正,CMake就成功找到了libprotobuf.so库,并且链接器不再生成未定义的参考错误。
以上是为什么使用'link_directories”时 CMake 无法找到我的共享库?的详细内容。更多信息请关注PHP中文网其他相关文章!