利用-DDEBUG选项条件编译 1. 源文件test.c中有: #includeintmain(intargc,char*argv[]){#ifdefDEBUGprintf("DEBUG is definded \n");#elseprintf("DEBUG is not definded \n");#endif} 2. Makefile文件为: DEBUG= CFLAG= -g debug: DEBUG.c
1.使用gcc编译器编译debug版本: 在命令行中输入: $ gcc -g -o 其中,-g参数表示生成包含调试信息的可执行文件,-o表示设置输出文件的文件名,表示要编译的源文件。 2.使用gdb调试debug版本: 在命令行中输入: $ gdb <executable> 此命令会进入GDB调试环境,<executable>表示上一步生成的可执行文件。然后,我们...
3. 输入: gcc -g -o debug test .c ./debug out: DEBUG is not definded 4. 输入: gcc -DDEBUG -g -o debug test .c ./debug out: DEBUG is definded 这样DEBUG版本和 release版本都有了. GCC生成32位版与64位版、debug版与release版 本文介绍了如何利用makefile条件编译来生成(64/32bit、debug...
Window系统下的MinGW-w64(例如安装了TDM-GCC,选择MinGW-w64),默认是编译为64位代码,包括在32位的Windows系统下。 三、makefile代码 makefile的代码为—— # flags CC=gccCFLAGS= -Wall LFLAGS=# args RELEASE=0BITS=# [args] 生成模式. 0代表debug模式, 1代表release模式.makeRELEASE=1. ifeq ($(RELEASE)...
在使用gcc作为编译器。在设定编译条件时,在debug模式下生成的程序正常,但是在release模式下往往会出现很多种预料之外的结果,尤其在嵌入式环境中,程序在板子上运行的时候,问题就愈发明显。 为了了解具体为什么造成该问题,对两种模式下的配置做了对比 debug模式编译器参数为-O0 -g –Wall release模式编译器参数为-O2 ...
程序的发布方式有两种, debug 模式和 release 模式, Linux gcc/g++ 出来的二进制程序,默认是 release 模式。 要使用gdb调试,必须在源代码生成⼆进制程序的时候, 加上 -g 选项,如果没有添加,程序无法被编译 $ gcc mycmd.c -o mycmd # 默认模式,不⽀持调试 ...
Debug模式: -g MinSizeRel模式: -Os -DNDEBUG RelWithDebInfo模式: -O2 -g -DNDEBUG 我们可以在 CMakeLists 中使用如下片段添加额外的编译选项: # 修改编译选项 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # debug 默认选项是 -g set(CMAKE_C_FLAGS_...
在嵌入式开发中,gcc编译器的优化选项在release模式下对程序性能至关重要。默认的debug模式(-O0)与release模式(-O2)之间的区别在于优化程度。在-O0下,编译器不做任何优化,适合于调试;而-O2开启更深度的优化,虽然编译时间增加,但生成的代码性能更好。-O1优化级别对大型函数进行简化,但避免耗费大量...
我的想法是最好是能和keil一样快捷键编译、下载、调试。目前基本都实现了,用F7进行编译,用F8下载到单片机,用F5进入调试模式。 环境配置 1. cmake,用于工程管理和编译。 2. pyocd,用于下载、调试,装好芯片的pack包。 3. gcc,编译。 4. VScode,安装cortex-debug,展示调试界面。