我通过 CMAKE _ C _ FLAGS 在 CMake 中设置 CFLAGS。 像这样设置 LDFLAGS 吗?
看看:
CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS
可以在 Target _ link _ library中指定链接器标志。
这在一定程度上取决于你想要什么:
A)如果你想指定链接到哪些库,你可以使用 Find _ library来查找库,然后使用 链接 _ 目录和 Target _ link _ library来。
当然,编写一个好的 Find _ package脚本通常是值得的,它很好地添加了具有正确位置的“导入”Add _ library (YourLib IMPORTED)库,以及特定于平台/构建的前缀和后缀。然后您可以简单地引用“ YourLib”并使用 target _ link _ library。
B)如果您希望使用 MinGW-GCC 指定特定的链接器标志,例如’-mthread’或’-Wl,—— export-all-盐’,您可以使用 CMAKE _ EXE _ LINKER _ FLAGS。模块、共享库或静态库也有两个类似但没有文档说明的标志:
CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS
有关对库的链接,请参见 安德烈的回答。
对于链接器标志-以下4个 CMake 变量:
可以很容易地操纵不同的配置(调试,释放...)与 Ucm的 Ucm _ add _ linker _ Flag宏
如果你想添加一个标志到 每个链接,例如 -fsanitize=address,那么我不建议使用 CMAKE_*_LINKER_FLAGS。即使它们都设置好了,在 OSX 上链接框架时,或许在其他情况下,它仍然不使用标志。改用 link_libraries():
-fsanitize=address
CMAKE_*_LINKER_FLAGS
link_libraries()
add_compile_options("-fsanitize=address") link_libraries("-fsanitize=address")
这是万能的。