标签: pengwin-enterprise

如何预测 CMake 在给定平台上选择 LIBDIR

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

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

现在,我已将相同的构建套件应用于 Red Hat Linux 平台(Pengwin Enterprise for WSL),结果发现此处 CMAKE_INSTALL_FULL_LIBDIR 设置为 ${CMAKE_INSTALL_PREFIX}/lib 64。我检查了CMake 文档,似乎说实际上“lib”或“lib64”的选择是自动确定的并且与平台相关。

那么,在我自己的应用程序的 CMakeLists.txt 文件中,有没有办法找出它在我当前平台上的位置?否则我该如何猜测去哪里寻找图书馆呢?我环顾四周,但找不到保存平台相关字符串的 CMAKE 标准变量,所以我唯一能想到的是:

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

...但这两种方法看起来都笨拙不雅,肯定有更好的方法。

cmake libtiff pengwin pengwin-enterprise

5
推荐指数
1
解决办法
9237
查看次数

标签 统计

cmake ×1

libtiff ×1

pengwin ×1

pengwin-enterprise ×1