V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
thomaswang
V2EX  ›  问与答

CMakeLists.txt 编写问题

  •  
  •   thomaswang · 2018-03-01 09:27:09 +08:00 · 2536 次点击
    这是一个创建于 2450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在编译的时候加上-Wall -g 之类的参数,方便调试,如何编译 CMakeLists.txt

    5 条回复    2018-03-01 12:06:00 +08:00
    jiutai21
        1
    jiutai21  
       2018-03-01 09:49:33 +08:00
    set(CMAKE_C_FLAGS "-Wall -O0 -ggdb")
    这样
    xylophone21
        2
    xylophone21  
       2018-03-01 09:51:47 +08:00
    内置的方法是:
    SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")
    SET(CMAKE_CXX_FLAGS_RELEASE "${ENV{CXXFLAGS} -O3 -Wall")
    cmake -DCMAKE_BUILD_TYPE=Debug/Release path

    自定义的方法是:
    cmake -DXXX=1
    if(XXX STREQUAL 1)
    suikator
        3
    suikator  
       2018-03-01 09:54:42 +08:00 via Android
    set(CMAKE_BUILD_TYPE "Debug")
    set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
    set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
    radioactivezx
        4
    radioactivezx  
       2018-03-01 10:47:39 +08:00
    上面说的直接设置 CMAKE_C_FLAGS/CMAKE_CXX_FLAGS,对 Debug/Release/RELWITHDEBINFO/MINSIZEREL 单独设置也可以。

    有专门的命令 add_compile_options 对目录级别设置。

    对单独 target 设置可以用 target_compile_options 或更通用也更麻烦的 set_target_properties(... COMPILE_FLAGS ...) 设置。

    具体以上命令可以查 CMake 文档。

    @suikator set(CMAKE_BUILD_TYPE "Debug") 是没有用的,如果想要默认直接设置 CMAKE_BUILD_TYPE 应该 set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "" FORCE)
    700388
        5
    700388  
       2018-03-01 12:06:00 +08:00
    cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
    cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug

    前提要在 CMakeLists.txt 声明。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:15 · PVG 08:15 · LAX 16:15 · JFK 19:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.