当前位置:  开发笔记 > 开发工具 > 正文

阻止CMake将`lib`添加到库名称之前

如何解决《阻止CMake将`lib`添加到库名称之前》经验,为你挑选了1个好方法。

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

例如,假设我想添加libusb:

add_library(libusb ...)

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

(add_library(usb ...并不是解决方案;库被称为libusb而不是usb.)



1> Florian..:

你可以通过修改它CMAKE_STATIC_LIBRARY_PREFIX.所以在你的情况下,只需按照你的project()命令执行:

set(CMAKE_STATIC_LIBRARY_PREFIX "")

或者您可以通过PREFIX目标属性为每个目标更改它.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有