Mac Clion 2019.01使用Makefile单步调试

Mac Clion 2019.01使用Makefile单步调试

安装Clion

使用Clion单步调试

安装MakeFile插件

在File>>setting>>plugins>>makefile support>>install安装,如下图所示:
Mac Clion 2019.01使用Makefile单步调试

编译调试

安装完插件后,编写好Makefile文件,选中Makefile文件右键,选中run Makefile,如下图:
Mac Clion 2019.01使用Makefile单步调试

后面那个3只是我运行了几次Makefile系统自动生成的,不需要理睬。正常情况窗口会输出编译信息的。

选中菜单,Run >> Debug,然后选择configuration
Mac Clion 2019.01使用Makefile单步调试
Mac Clion 2019.01使用Makefile单步调试

添加CMakeLists文件

cmake_minimum_required(VERSION 3.12)
project(test)

set(CMAKE_CXX_STANDARD 11)
set(BUILD_DIR ${PROJECT_SOURCE_DIR})  #设置编译目录,也就是Makefile文件所在目录
message(${BUILD_DIR}) #打印目录路径
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_custom_target(test COMMAND make -C ${BUILD_DIR}) #最关键的就是这句, 设置外部编译文件而不是使用CMakeLists.txt

最后打断点即可调试了。

Mac Clion 2019.01使用Makefile单步调试
Mac Clion 2019.01使用Makefile单步调试

测试Demo附录

### test.c
#include <stdio.h>
int main(void)
{
    int a = 3;
    int b = 2;
        
    printf("a=%d\n", a);
    printf("b=%d\n", b);
    
    printf("a+b=%d\n", add(a,b));
    printf("a-b=%d\n", sub(a,b));
    return 0;
}


### test-add.c
int add(int a, int b) 
{
    return a+b;
}

### test-sub.c
int sub(int a, int b) 
{
    return a-b;
}

### Makefile
# 指令编译器和选项,-g一定需要加上,否则无法调试
CC=gcc
CFLAGS=-Wall -std=gnu99 -g
 
# 目标文件
TARGET=test
# 源文件
SRCS=test.c test-add.c test-sub.c
 
OBJS = $(SRCS:.c=.o)
 
$(TARGET):$(OBJS)
#	@echo TARGET:[email protected]
#	@echo OBJECTS:$^
	$(CC) -o [email protected] $^
 
clean:
	rm -rf $(TARGET) $(OBJS)
 
%.o:%.c
	$(CC) $(CFLAGS) -o [email protected] -c $<