gpt4 book ai didi

cmake - CMAKE_FIND_LIBRARY_PREFIXES/CMAKE_FIND_LIBRARY_SUFFIXES 的默认值

转载 作者:行者123 更新时间:2023-12-04 23:00:06 26 4
gpt4 key购买 nike

我想我在这里遗漏了一些非常明显的东西,但在我看来,cmake 变量 CMAKE_FIND_LIBRARY_PREFIXES/CMAKE_FIND_LIBRARY_SUFFIXES根据当前系统/设置,未设置为任何“体面”的默认值!我已经检查了 cmake 文档和谷歌,但似乎真的没有。

例如,一个简单的 CMakeLists.txt 本质上调用了 find_package(OpenSSL REQUIRED)除非您在主文件中设置变量或直接调用 cmake -DCMAKE_FIND_LIBRARY_PREFIXES=lib -DCMAKE_FIND_LIBRARY_SUFFIXES=.so ..,否则将中断(在 ubuntu 上安装了 openssl/libssl-dev)
另一方面,目标的默认值 PREFIX/SUFFIX 为每个平台“正确”初始化,即使考虑 BUILD_SHARED_LIBS 等。为什么不用于 find_library?

有谁知道为什么/建议的(用户)行为应该是什么?

最佳答案

cmake variables CMAKE_FIND_LIBRARY_PREFIXES/CMAKE_FIND_LIBRARY_SUFFIXES are not set to any "decent" default value



你为什么这么认为?例如:
cmake_minimum_required(VERSION 3.1)
project(Foo)

message("prefix: ${CMAKE_FIND_LIBRARY_PREFIXES}")
message("suffix: ${CMAKE_FIND_LIBRARY_SUFFIXES}")

Linux(Ubuntu):
prefix: lib
suffix: .so;.a

苹果电脑:
prefix: lib
suffix: .dylib;.so;.a

视窗(Visual Studio):
prefix:
suffix: .lib

calling find_package(OpenSSL REQUIRED) will break unless you set the variables in your main file



刚刚测试,对我来说很好用。 Ubuntu 14.04。 CMake 2.8.12.2 和 CMake 3.1.0-rc2。

关于cmake - CMAKE_FIND_LIBRARY_PREFIXES/CMAKE_FIND_LIBRARY_SUFFIXES 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28194215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com