首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何预测给定平台上CMake对LIBDIR的选择

如何预测给定平台上CMake对LIBDIR的选择
EN

Stack Overflow用户
提问于 2019-04-23 23:30:40
回答 1查看 5.7K关注 0票数 3

在我的应用程序套件中,我从源代码构建Libtiff,然后将它链接到我自己编写的应用程序。Libtiff的CMakeLists.txt文件指定静态库进入由CMake的GNUInstallDirs选项确定的库位置CMAKE_INSTALL_FULL_LIBDIR。

当我第一次构建和测试我的应用程序时,我是在Debian中这样做的,在这个平台上,CMAKE_INSTALL_FULL_LIBDIR被设置为${CMAKE_INSTALL_PREFIX}/lib。好的,好的,所以在我自己的应用程序的CMakeLists.txt文件中,我告诉它搜索那里的静态tiff库。没问题..。

现在,我已经将相同的构建套件带到了Red平台(Pengwin ),而这里的${CMAKE_INSTALL_PREFIX}/lib64.被设置为CMAKE_INSTALL_FULL_LIBDIR。我检查了CMake文档,它似乎说,实际上“lib”或“lib64”的选择是自动确定的,并且与平台有关。

那么,在我自己的应用程序的CMakeLists.txt文件中,有没有一种方法可以找出它在我当前的平台上呢?不然我该怎么猜去哪儿找图书馆?我已经查看过了,但是找不到一个包含平台相关字符串的CMAKE标准变量,所以我唯一能想到的事情是:

  1. 尝试“lib”,如果不起作用,请尝试“lib 64”,或者
  2. 在我自己的CMAKE_INSTALL_FULL_LIBDIR文件中创建一个新的CMakeLists.txt并读取它的末尾

...but这两种方法都显得笨重不雅,而且肯定有更好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 12:32:06

GNUInstallDirs模块记录CMAKE_INSTALL_LIBDIR变量,听起来它包含您想要的值。

代码语言:javascript
运行
复制
CMAKE_INSTALL_LIBDIR = lib
CMAKE_INSTALL_FULL_LIBDIR = /lib

此外,find_library还应该在默认路径搜索中根据需要搜索liblib64,即使在使用CMAKE_LIBRARY_PATH定义自定义前缀时也是如此。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55820716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档