【问题标题】:cflags '-Wl,-export-dynamic' vs linker flags '-export-dynamic'cflags '-Wl,-export-dynamic' 与链接器标志 '-export-dynamic'
【发布时间】:2012-09-29 12:17:47
【问题描述】:

我在 CMake 中使用 Clang 编译了具有不同编译标志的相同程序(不是库)

  1. 使用 CMAKE_C_FLAGS = -Wl,-export-dynamic
  2. 使用 CMAKE_EXE_LINKER_FLAGS = -export-dynamic

但我注意到第二种方法似乎不起作用。我找不到导出的符号。我很惊讶只有第一种方式有效。我不知道 C 编译器是否会做一些棘手的事情,或者 Clang 或 CMake。但是如何让第二种方式起作用呢?第一种方式会打印很多警告。

【问题讨论】:

  • 为什么要从可执行文件中导出符号?
  • @JonathanLeffler 插件需要从可执行文件中调用函数。

标签: c cmake clang


【解决方案1】:

为第二个变体提供相同的选项。

set(CMAKE_EXE_LINKER_FLAGS "-Wl,-export-dynamic")

因为在您的情况下编译器和链接器相同。

【讨论】:

  • 非常感谢。这就是我想要的!
  • 对于 macOS,它是 --export-dynamic(两个连字符)
猜你喜欢
  • 2022-11-18
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 2011-05-27
  • 2016-02-10
相关资源
最近更新 更多