如何预测CMake';s在给定平台上选择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}/lib64。我已经检查过了,它似乎说事实上,“lib”或“lib64”的选择是自动确定的,并且依赖于平台 那么,在我自己的应用程序的CMakeLists.txt文件中,有没有办法找出它在我当前的平台上?不然我怎么能猜到图书馆在哪里?我四处查看了一下,但找不到包含平台相关字符串的CMAKE标准变量,因此我能想到的只有:如何预测CMake';s在给定平台上选择LIBDIR,cmake,libtiff,pengwin,pengwin-enterprise,Cmake,Libtiff,Pengwin,Pengwin Enterprise,在我的应用程序套件中,我从源代码构建Libtiff,然后将其链接到我自己编写的应用程序。Libtiff的CMakeLists.txt文件指定静态库进入库位置CMAKE_INSTALL_FULL_LIBDIR,由CMAKE的GNUInstallDirs选项确定 当我第一次构建和测试我的应用程序时,我是在Debian中这样做的,在这个平台上,CMAKE_INSTALL_FULL_LIBDIR设置为${CMAKE_INSTALL_PREFIX}/lib。很好,所以在我自己的应用程序的CMakeList
CMAKE_INSTALL_LIBDIR = lib
CMAKE_INSTALL_FULL_LIBDIR = /lib
此外,即使使用
CMAKE\u library\u path
定义自定义前缀,也应根据需要在默认路径搜索中搜索lib
和lib64
。“尝试“lib”,如果不起作用,请尝试“lib64”,或者”-我已经看到几个使用给定方法的项目。是的,就是这样。正如我通常在阅读CMake文档时的经历一样,单独阅读时一点也不清楚;但是,在得到这个提示并在互联网上查找了一些使用示例之后,很明显,这就是解决方案。