使用VS CODE测试nr_micro_shell

上篇说到使用dev-c++来编译nr_micro_shell,整体还是很方便的,不要写任何命令和文件就能完成编译,但是dev-c++这个工具并不是很好用,今天使用VS CODE 加 Cmake来完成编译,

1准备条件

         安装 VS code  Visual Studio Code - Code Editing. Redefined

         在vs code中安装 cmake,这两个都要安装

使用VS CODE测试nr_micro_shell_第1张图片

        安装minGW  Downloads - MinGW-w64  这个就是编译器部分了,前面的都是编译功能,minGW安装好记得配置环境变量。

看到这里是不是觉得还是DEV -C++ IDE比较香,什么都不用配置,对于多文件,多文件夹的工程,我们必须要使用makefile或cmake来帮忙,单纯用gcc编译器是很累的。

 环境都搭建好之后,我们新建一个文件夹,使用vs code打开,里面手动添加main.c和CMakeLists.txt

使用VS CODE测试nr_micro_shell_第2张图片

main.c 和上篇保持基本一样

#include 
#include 
#include "micro_shell/inc/nr_micro_shell.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) 
{
	
	printf("hello\r\n");
	 /* 初始化 */
    shell_init();

    while(1)
    {
    	char c =getchar();
        
        {
            /* nr_micro_shell接收字符 */
            shell(c);
        }
    }
	
	
	return 0;
	
}

 CMakeLists.txt 

project(Main)
#设置c++编译器
set(CMAKE_CXX_COMPILER "gcc")
#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/micro_shell/inc)
add_subdirectory(micro_shell)                          
add_executable(Main main.c)
target_link_libraries(Main micro_shell)

然后我们把上篇准备的那个micro_sheel文件夹放到工程里面,

使用VS CODE测试nr_micro_shell_第3张图片

 最后我们在micro_shell里面添加CMakeLists.txt

使用VS CODE测试nr_micro_shell_第4张图片

  CMakeLists.txt   生成一个micro_shell 静态库文件

#cmake_minimum_required(VERSION 2.8)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc)
add_library(micro_shell STATIC
  ./src/ansi.c
  ./src/ansi_port.c
  ./src/nr_micro_shell.c
  ./examples/nr_micro_shell_commands.c
)

 编译

         前面搞了一堆操作,终于可以编译了....

vs code 点击 运行->启动调试->选择我们安装的minGW,前提是设置过环境变量。报错的话不用管。

点击状态栏的编译和运行就可以编译通过了。

使用VS CODE测试nr_micro_shell_第5张图片

可以看到cmake给我生成了很多文件,都放到了build目录下面

使用VS CODE测试nr_micro_shell_第6张图片

也生成了我们想要的库文件,理论上这个文件可以用在win平台的其它程序中,只需要重新连接一下即可

使用VS CODE测试nr_micro_shell_第7张图片

 

使用vs code吧,怎么说呢,说实话还是挺麻烦了,需要自己安装不少东西, 也需要了解一些cmake的知识。不过这样也可以让我们了解一下编译的一些流程,不像ide那样,什么都看不到,都是各有利弊吧。

你可能感兴趣的:(c++,开发语言)