Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个项目的一个生成的Cmake调试标志条件_C_Cmake - Fatal编程技术网

具有多个项目的一个生成的Cmake调试标志条件

具有多个项目的一个生成的Cmake调试标志条件,c,cmake,C,Cmake,我需要帮助编译带有调试标志的项目 我已使用BUILD文件夹中的-DCMAKE\u BUILD\u TYPE=Debug..进行编译 我能够在编译后运行二进制文件。但是,未打开调试标志。我在这一点上有点卡住了。任何善良的灵魂都愿意在这方面给出善意的建议或指导 我的构建树如下所示: project |------ CMakeLists.txt (The main Cmake) |------ ProjectA | |----- src |.c

我需要帮助编译带有调试标志的项目

我已使用BUILD文件夹中的
-DCMAKE\u BUILD\u TYPE=Debug..
进行编译

我能够在编译后运行二进制文件。但是,未打开调试标志。我在这一点上有点卡住了。任何善良的灵魂都愿意在这方面给出善意的建议或指导

我的构建树如下所示:

project
|------ CMakeLists.txt (The main Cmake)
|------ ProjectA
|          |----- src
                   |.c files
|          |----- include
                   |.h files
|          |----- CMakeList.txt
|------ ProjectB
|          |----- src
                   |.c files
|          |----- include
                   |.h files
|          |----- CMakeList.txt
| 
|------ build
|         |-----  ...
|------ bin
|        |---- executables
我已在项目A和B中设置了我的cmake标志,如下所示:

#cmake output directory
...
#compiler
...
set(CMAKE_C_FLAGS "... -DDEBUG ...")
#Linking
...
#add executables
...
我的顶级CMakeLists.text是这样的:

project(..)
...

add_subdirectory(ProjectA)
add_subdirectory(ProjectB)

在main CMakeLists.txt中,添加以下行

## Configure debug flag to enable debug log

set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall")
生成生成文件:

cmake ..... -DCMAKE_ARCH="x86_64" -DCMAKE_BUILD_TYPE=Debug 

让我试着理解你在这里的建议。这条线实际上是做什么的?set(CMAKE_C_FLAGS_DEBUG“${CMAKE_C_FLAGS_DEBUG}-DMSGLOG”)它将确保将-DDEBUG设置为cflag并生成调试版本