有些库遵循不同的文件名约定,例如PAM库 - pam_unix.so而不是libpam_unix.so.
如何在CMake中覆盖目标库文件名以获取类似new_thing.so而不是默认值libnew_thing.so?
tam*_*nez 62
您可以使用set_target_properties()函数和PREFIX/ OUTPUT_NAME/ SUFFIX属性以下列方式更改前缀,输出名称和后缀:
字首:
set_target_properties(new_thing PROPERTIES PREFIX "")
Run Code Online (Sandbox Code Playgroud)
输出名称:
set_target_properties(new_thing PROPERTIES OUTPUT_NAME "better_name")
Run Code Online (Sandbox Code Playgroud)
后缀:
set_target_properties(new_thing PROPERTIES SUFFIX ".so.1")
Run Code Online (Sandbox Code Playgroud)
Civ*_*Fan 19
由于这与文件名有关,您可能会考虑寻找install答案.(果然,有一个RENAME条款,但这是一个红色的鲱鱼.)
而是target使用set_target_properties命令更改.
图书馆目标具有内置属性PREFIX.另一个相关的是SUFFIX.将这两个属性添加到目标名称以确定安装时的最终文件名.
对于OQ:
# By default, the library filename will be `libnew_thing.so`
add_library(new_thing ${NEW_THING_SRCS})
# This changes the filename to `new_thing.so`
set_target_properties(new_thing PROPERTIES PREFIX "")
Run Code Online (Sandbox Code Playgroud)
假设您还希望文件名具有以下版本:
# This then changes the filename to `new_thing.so.1`,
# if the version is set to "1".
set_target_properties(new_thing
PROPERTIES PREFIX ""
SUFFIX ".so.${NEW_THING_VER}"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20959 次 |
| 最近记录: |