cflags’-WI,-export-dynamic’与链接器标志’-export-dynamic’

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

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

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

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

set(CMAKE_EXE_LINKER_FLAGS“-Wl,-export-dynamic”)

因为编译器和链接器在你的情况下是一样的。