gpt4 book ai didi

c++ - CMake target_link_libraries 不保留顺序

转载 作者:太空狗 更新时间:2023-10-29 23:12:27 30 4
gpt4 key购买 nike

我正在使用 CMake 3.8.2(与 JetBrains CLion 一起提供)并链接自定义项目的几个静态库。

因为我需要保留静态符号(遗留),所以我将自己的程序部分包含在 target_link_libraries(${TARGET} -Wl,--whole-archive ${MY_LIBRARY} -Wl,--no -whole-archive).

这在大多数情况下都有效,但有时链接器命令会像这样:

/usr/bin/c++ -g CMakeFiles/my_exe.dir/my_exe.cpp.o -o my_exe libmy_other_lib.a -Wl,--whole-archive -Wl,--no-whole-archive

这是相当无用的,因为库是预先添加的,然后 -Wl,--whole-archive -Wl,--no-whole-archive 发生了。

请注意,我需要在链接 my_other_lib.a 之后添加类似 -Wl,--no-whole-archive 的内容,因为我不想使用此选项用于外部依赖。

对此有什么想法吗?

最佳答案

尝试将这些标志作为单个参数传递给 target_link_libraries,而不是作为列表传递:

target_link_libraries(${TARGET} "-Wl,--whole-archive ${MY_LIBRARY} -Wl,--no-whole-archive")

关于c++ - CMake target_link_libraries 不保留顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099605/

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