如何在CMakeLists.txt中设置LDFLAGS?
我通过 CMAKE_C_FLAGS 在 CMake 中设置 CFLAGS。 是这样设置LDFLAGS吗?
I set the CFLAGS in CMake by CMAKE_C_FLAGS.
Is something like this to set LDFLAGS?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这在一定程度上取决于您想要什么:
A)如果您想指定链接到哪些库,您可以使用 find_library 查找库,然后使用 link_directories< /a> 和 target_link_libraries 到。
当然,编写一个好的 find_package 脚本通常是值得的,它很好地添加了“导入”库 add_library( YourLib IMPORTED )正确的位置以及平台/构建特定的前缀和后缀。然后,您可以简单地引用“YourLib”并使用 target_link_libraries。
B) 如果您希望使用 MinGW-GCC 指定特定的链接器标志,例如 '-mthreads' 或 '-Wl,--export-all-symbols',您可以使用 CMAKE_EXE_LINKER_FLAGS。还有两个类似但未记录的模块、共享或静态库标志:
It depends a bit on what you want:
A) If you want to specify which libraries to link to, you can use find_library to find libs and then use link_directories and target_link_libraries to.
Of course, it is often worth the effort to write a good find_package script, which nicely adds "imported" libraries with add_library( YourLib IMPORTED ) with correct locations, and platform/build specific pre- and suffixes. You can then simply refer to 'YourLib' and use target_link_libraries.
B) If you wish to specify particular linker-flags, e.g. '-mthreads' or '-Wl,--export-all-symbols' with MinGW-GCC, you can use CMAKE_EXE_LINKER_FLAGS. There are also two similar but undocumented flags for modules, shared or static libraries:
看看:
Look at:
如果您想向每个链接添加标志,例如
-fsanitize=address
,那么我不建议使用CMAKE_*_LINKER_FLAGS
。即使它们全部设置完毕,在 OSX 上链接框架时仍然不使用该标志,也许在其他情况下也是如此。而是使用link_libraries()
:这适用于所有情况。
If you want to add a flag to every link, e.g.
-fsanitize=address
then I would not recommend usingCMAKE_*_LINKER_FLAGS
. Even with them all set it still doesn't use the flag when linking a framework on OSX, and maybe in other situations. Instead uselink_libraries()
:This works for everything.
您可以在 target_link_libraries 中指定链接器标志。
You can specify linker flags in target_link_libraries.
有关链接到库的信息,请参阅Andre 的回答。
对于链接器标志 - 以下 4 个 CMake 变量:
可以使用 ucm_add_linker_flags ucm
For linking against libraries see Andre's answer.
For linker flags - the following 4 CMake variables:
can be easily manipulated for different configs (debug, release...) with the ucm_add_linker_flags macro of ucm