首页 > 后端开发 > C++ > 为什么使用'link_directories”时 CMake 无法找到我的共享库?

为什么使用'link_directories”时 CMake 无法找到我的共享库?

Susan Sarandon
发布: 2024-12-16 09:32:14
原创
266 人浏览过

Why Does CMake Fail to Find My Shared Library When Using `link_directories`?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板