1
看来cmake的无法确定哪些库可与当前的编译器使用或者更确切地说,我想CMake的对已编译相同的编译器只使用库。CMake外部库链接?
我使用find_library找到需要的库,但它似乎是无法确定如果库是实际可用。它设法按名称查找库,但是当我为MinGW进行配置时,它使用“.lib”扩展名。是否必须为编译库的每个编译器创建文件夹,并为脚本中的每个编译器添加if语句?这似乎与我相信find_library能够做到的直觉相反。也许我在滥用它?任何人有更好的想法?
谢谢你的回复,你至少回答了我的一些问题。我想知道更多的是如果你正在构建一个64位的可执行文件,那么如果你有一些变量FIND_LIBRARY_USE_LIB64_PATHS,那么CMake会自动将任何带有“/ lib /”的目录改为“/ lib64 /”。 – johndoe
确实如此,但仅限于“已知需要它的平台”,我无法检查的权利,但我敢肯定的Windows是不是在这个平台列表(有适用于Windows库没有固定的位置反正...) – Guillaume
Accidentially按下输入,并将其张贴...只允许5分钟左右的时间内编辑: '如果(MSVC) find_library(MYLIB_LIBRARY MYLIB 路径 “预置的/ lib目录,MSVC/MYLIB /” ELSEIF (MINGW)#呃不知道如何检查的编译器(似乎只提供给MSVC ...) find_library(MYLIB_LIBRARY MYLIB 路径 “预置的/ lib目录-的MinGW/MYLIB /” ENDIF() ' 而不是写如果sta对每个编译器来说(这看起来似乎有关于检查它们的方式的idk;至少我见过可以改变的编译器ID的字符串比较)如果有人知道更好的方法来检查complrs – johndoe