我有一个可执行文件,由几个目标文件构建,并与几个静态和共享库链接.我想为其中一个链接库指定-Wl,-whole-archive链接器选项.
例如,从此命令:
/usr/bin/c++ _objectFiles_ -o _myExec_ _someCommonOptions_ _myLibraries_ -Wl,-rpath _path to libs_
Run Code Online (Sandbox Code Playgroud)
我想得到这个命令:
/usr/bin/c++ _objectFiles_ -o _myExec_ _someCommonOptions_ _allOtherLibs_ \
-Wl,-whole-archive _one particular lib_ -Wl,-no_whole-archive -Wl,-rpath _path to libs_
Run Code Online (Sandbox Code Playgroud)
我能使用cmake实现这一目标吗?据我所知,当我添加类似的东西时
set_target_properties(myExec PROPERTIES LINK_FLAGS "-Wl,-whole-archive")
Run Code Online (Sandbox Code Playgroud)
然后-whole-archive为所有链接库设置选项,这绝对不是我想要的.
谢谢.
Mat*_*Mat 33
这个线程将静态库链接到共享库?有一个方法.
SET (MYLIB -Wl,--whole-archive my_particular_lib -Wl,--no-whole-archive)
....
TARGET_LINK_LIBRARIES(yourtarget ${normalstuff} ${MYLIB} ${othernormalstuff})
Run Code Online (Sandbox Code Playgroud)
该CMake的文档状态:
如果库名称与项目中另一个目标的库名称匹配,则会在构建系统中自动添加依赖项,以确保链接库在目标链接之前是最新的.以" - "开头但不是"-l"或"-framework"的项目名称被视为链接器标志.
所以这些-Wl选项不应该被CMake干扰/接触.
| 归档时间: |
|
| 查看次数: |
15009 次 |
| 最近记录: |