我通过CMAKE_C_FLAGS在CMake中设置了CFLAGS。 像这样设置LDFLAGS?CMake:如何在CMakeLists.txt中设置LDFLAGS?
回答
这取决于一点上你想要什么:
A)如果你想指定库链接,你可以使用find_library寻找库,然后使用link_directories和target_link_libraries来。
当然,编写一个好的find_package脚本通常是值得的,该脚本很好地将add_library(YourLib IMPORTED)的“导入”库与正确的位置相加,并且平台/构建特定的前缀和后缀。然后您可以简单地引用'YourLib'并使用target_link_libraries。 B)如果你想指定特定的链接器标志,例如'-mthreads'或'-Wl, - 输出所有符号'与MinGW-GCC,你可以使用CMAKE_EXE_LINKER_FLAGS。还有用于模块,共享或静态库中的两个相似的,但无证标志:
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
看:
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
可以在target_link_libraries指定连接标志。
对于链接到的库看到Andre's answer。
对于连接器选项 - 以下4个CMake的变量:
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
可以容易地控制不同的CONFIGS(调试,发布...)与ucm_add_linker_flags宏ucm
如果你想每链接添加一个标志,例如-fsanitize=address
那么我不会推荐使用CMAKE_*_LINKER_FLAGS
。即使对他们来说,在OSX上连接框架时,也可能在其他情况下,它们仍然不使用该标志。相反使用link_libraries()
:
add_compile_options("-fsanitize=address")
link_libraries("-fsanitize=address")
这适用于一切。
是否需要add_compile_options,如果我只想设置链接器标志? – thomastiger 2017-08-18 09:25:00
否............. – Timmmm 2017-08-20 19:10:46
这是现在最好,最干净的方式。 – Salamandar 2017-12-05 10:19:37
- 1. 如何设置CFLAGS和LDFLAGS编译pycrypto
- 2. cmake:在CMakeLists.txt中选择生成器
- 3. 如何正确设置CMakeLists.txt文件?
- 4. CMake add_subdirectory不调用子CMakeLists.txt
- 5. 如何在CMakeLists.txt中指定安装CMake的路径
- 6. 如何判断在CMakeLists.txt中需要哪个最小CMake版本?
- 7. 如何在CMake中设置STL实现?
- 8. 如何在CMAKE中设置RPATH?
- 9. 如何在Cmake中设置GRAPHVIZ_GRAPH_HEADER?
- 10. 一个CMakeLists.txt中的多个CMake项目
- 11. 从CMakeLists.txt文件设置CMAKE_INSTALL_PREFIX
- 12. CMake:如何设置VTK_DIR?
- 13. CMake如何将CMakeLists.txt中的shell命令转换为Makefile
- 14. 在cmake中,可以cmake文件夹和CMakeLists.txt坐在不同的文件夹?
- 15. 如何获取CMakeLists.txt中设置的变量的值?
- 16. 如何使用Automake为“noinst”类库设置LDFLAGS?
- 17. cmake的设置
- 18. CMake的:如何创建一个运行的./configure一次的CMakeLists.txt?
- 19. CMake ExternalProject:如何指定根CMakeLists.txt的相对路径?
- 20. cmake文件结构,如何将CMakeLists.txt分割成多个文件?
- 21. 如何在CMake中为特定配置设置Xcode属性?
- 22. 如何设置CMake为iPhone构建库
- 23. 如何设置使选项与cmake
- 24. 如何使用去构建设置在编译时布尔变量-ldflags
- 25. 尽管在CMakeLists.txt中调用QML2_IMPORT_PATH未设置
- 26. 如何跟踪CMakeLists.txt
- 27. cmake中的变量在哪里设置?
- 28. 在CMake中设置MSVC运行时
- 29. 在CMake中设置默认编译器
- 30. 在CMake中设置路径(C++,ImageMagick)
而CMAKE_STATIC_LINKER_FLAGS静态库:http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_STATIC_LINKER_FLAGS.html – Cofyc 2015-06-18 09:43:42
近期CMake3.0描述只是一个链接:[CMAKE_EXE_LINKER_FLAGS(HTTPS: //cmake.org/cmake/help/v3.0/variable/CMAKE_EXE_LINKER_FLAGS.html)。请注意,MODULE/SHARED/STATIC标志已被记录(尽管相当模糊)。 – yman 2016-11-04 14:56:51
什么是模块标志? – CMCDragonkai 2017-09-04 06:40:47