gpt4 book ai didi

cmake - 阻止 CMake 在库名前加上 `lib`

转载 作者:行者123 更新时间:2023-12-04 14:09:29 29 4
gpt4 key购买 nike

可悲的是,CMake 遵循尴尬的“隐式 lib”约定,当库名称实际上不遵循约定(例如 zlib)或将“lib”作为其名称的显式部分时,这不可避免地会导致问题。

例如,假设我想添加 libusb:

add_library(libusb ...)

在 Windows 上,这将正确生成 libusb.lib .在 Unix 上它会产生搞笑的 liblibusb.a .有什么办法可以防止这种行为吗?我知道我可以使用 OUTPUT_NAME 显式设置输出名称但我必须使用一些时髦的生成器表达式来保留 libusb.lib在 Windows 上。请问有没有更好的办法?

(并且没有 add_library(usb ... 不是解决方案;该库被称为 libusb 而不是 usb。)

最佳答案

您可以通过 CMAKE_STATIC_LIBRARY_PREFIX 修改它.所以在你的情况下,在你的 project() 之后做命令:

set(CMAKE_STATIC_LIBRARY_PREFIX "")

或者您可以通过 PREFIX 按目标更改它目标属性(property)。

关于cmake - 阻止 CMake 在库名前加上 `lib`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41804282/

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