为了账号安全,请及时绑定邮箱和手机立即绑定

如果仍然需要指定CMAKE_MODULE_PATH,find_package()有什么用?

如果仍然需要指定CMAKE_MODULE_PATH,find_package()有什么用?

蛊毒传说 2020-02-04 14:39:01
我正在尝试使用CMake获得跨平台的构建系统。现在,该软件具有一些依赖性。我自己编译了它们并将它们安装在我的系统上。一些已安装的示例文件:-- Installing: /usr/local/share/SomeLib/SomeDir/somefile-- Installing: /usr/local/share/SomeLib/SomeDir/someotherfile-- Installing: /usr/local/lib/SomeLib/somesharedlibrary-- Installing: /usr/local/lib/SomeLib/cmake/FindSomeLib.cmake-- Installing: /usr/local/lib/SomeLib/cmake/HelperFile.cmake现在,CMake具有一个find_package()可打开Find*.cmake文件并在系统上的库之后进行搜索并定义一些变量(如SomeLib_FOUNDetc)的功能。我的CMakeLists.txt包含以下内容:set(CMAKE_MODULE_PATH "/usr/local/lib/SomeLib/cmake/;${CMAKE_MODULE_PATH}")find_package(SomeLib REQUIRED)第一个命令定义了CMake在哪里搜索,Find*.cmake然后我添加SomeLib了FindSomeLib.cmake可以找到的目录,因此find_package()可以正常工作。但这find_package()有点奇怪,因为存在的原因之一就是要摆脱非跨平台的硬编码路径。通常如何做?我应该将cmake/目录复制SomeLib到我的项目中并设置CMAKE_MODULE_PATH相对位置吗?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 2669 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信