gpt4 book ai didi

cmake - CMake 中的可移植整体文件链接

转载 作者:行者123 更新时间:2023-12-04 12:01:05 36 4
gpt4 key购买 nike

如果您想将静态库链接到共享库或可执行文件,同时保持所有符号可见(例如,您可以稍后打开它以找到它们),在 Linux/BSD 上执行此操作的一种非可移植方式是使用标志-Wl,--whole-archive .在 macOS 上,等效标志是 -Wl,-force_load,<library> ;在 Windows 上,它显然是 /WHOLEARCHIVE .

在 CMake 中有一种可移植的方法来做到这一点吗?

我知道我可以用 target_link_libraries 添加链接器标志.我可以检测到操作系统。但是,由于它的 macOS 版本在与标志相同的字符串中包含库名称(没有空格),我认为这与 CMake 对链接目标等的通常处理相混淆。我越是努力做到这一点,我就越需要向后弯腰才能让它发生。

这甚至没有涉及更不寻常的编译器,如 Intel、PGI、Cray、IBM 等。这些可能不是人们通常处理的编译器,但在某些领域,需要处理这些基本上是不可避免的。

有没有更好的选择?

最佳答案

  • flink.cmake会帮助你。
  • target_force_link_libraries(<target>
    <PRIVATE|PUBLIC|INTERFACE> <item>...
    [<PRIVATE|PUBLIC|INTERFACE> <item>...]...
    )

    关于cmake - CMake 中的可移植整体文件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51888396/

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