在windows下使用VS Code、CMake、Make进行代码编译

软件环境

Windows11
VS CodeNone
CMake3.26.4-windows-x86_64
MinGWNone

电脑系统配置

  1. 安装MinGW
  2. 将MinGW安装文件夹中bin文件夹下的mingw32-make.exe复制并重命名为make.exe
  3. 在文件夹中添加系统路径,具体位置为 系统->系统信息->高级系统设置->高级->环境变量->系统变量->path 中确保以下路径已经被添加
    如下所示:
    在这里插入图片描述

CMake设置

在CMake中,设置以下变量(根据自己电脑配置进行更改)

set(CMAKE_GENERATOR "MinGW Makefiles")
set(CMAKE_MAKE_PROGRAM "D:/MinGW/bin/make.exe")
set(CMAKE_C_COMPILER "D:/MinGW/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "D:/MinGW/bin/g++.exe")

编写简单代码,代码文件结构如下所示
—代码文件夹
——bin
——build
——include
———hello.hpp
———hello2.hpp
——lib
——src
———run.cpp
———hello.cpp
———hello2.cpp
——CMakeLists.txt
CMakeLists.txt文件内容如下

cmake_minimum_required(VERSION 3.0)
project(HELLO)

set(CMAKE_GENERATOR "MinGW Makefiles")
set(CMAKE_MAKE_PROGRAM "D:/MinGW/bin/make.exe")
set(CMAKE_C_COMPILER "D:/MinGW/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "D:/MinGW/bin/g++.exe")

include_directories(
    ${PROJECT_SOURCE_DIR}/include
)

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
add_library(hello SHARED 
${PROJECT_SOURCE_DIR}/src/hello.cpp
${PROJECT_SOURCE_DIR}/src/hello2.cpp
)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

add_executable(test ${PROJECT_SOURCE_DIR}/src/run.cpp)
target_link_libraries(test hello)

src/run.cpp内容如下

#include <iostream>
#include <stdio.h>
#include "hello.hpp"

int main(int argc, char** argv)
{
    printf("hello\n");
    printf("run:%s\n", argv[0]);
    hello_inclode();
    printf("enter any key to exit\n");
    getchar();
    exit(0);
}

src/hello.cpp内容如下

#include "hello.hpp"
#include "hello2.hpp"
void hello_inclode(void)
{
    printf("include hello.cpp\n");
    hello2_include();
}

src/hello2.cpp内容如下

#include "hello2.hpp"
void hello2_include(void)
{
    printf("hello2 include\n");
}

include/hello.hpp内容如下

#ifndef __HELLO_H__
#define __HELLO_H__
#include <stdio.h>
void hello_inclode(void);
#endif

include/hello2.hpp内容如下

#ifndef __HELLO_H__
#define __HELLO_H__
#include <stdio.h>
void hello2_include(void);
#endif

在build文件夹中使用cmake指令进行编译,虽然在CMakeLists.txt中指定了生成器,但是在目前版本中生成的并不是该变量指定的参数,因此添加-G参数,具体指令如下:

cmake -G="MinGW Makefiles" ..
make

执行bin文件结果如下所示:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想在CMake项目中使用lcov格式进行代码覆盖率分析,您可以使用CMake Code Coverage插件来生成和分析lcov格式的代码覆盖率报告。 以下是如何使用CMake Code Coverage插件来生成和分析lcov格式的代码覆盖率报告的步骤: 1. 安装CMake Code Coverage插件: 您可以使用以下命令安装CMake Code Coverage插件: ``` pip install cmake-codecov ``` 2. 在CMakeLists.txt文件中添加以下代码: ``` # 添加编译选项 set(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") # 构建可执行文件或库 add_executable(myapp main.cpp) # 添加测试 enable_testing() add_test(NAME mytest COMMAND myapp) # 生成代码覆盖率报告 include(CTest) include(CMakeCodeCoverage) APPEND_COVERAGE_COMPILER_FLAGS() SETUP_TARGET_FOR_COVERAGE_LCOV(NAME my_coverage EXECUTABLE myapp DEPENDENCIES mytest) ``` 这将启用代码覆盖率分析,并生成lcov格式的代码覆盖率报告。 3. 运行测试代码,并生成lcov格式的代码覆盖率报告: ``` make my_coverage ``` 这将生成一个名为coverage/lcov.info的lcov格式的代码覆盖率报告。 4. 分析代码覆盖率报告: 您可以使用lcov和genhtml工具来分析代码覆盖率报告,并生成HTML格式的报告。例如,您可以使用以下命令来生成HTML格式的报告: ``` lcov --directory . --capture --output-file coverage.info genhtml coverage.info --output-directory out ``` 这将在out目录中生成HTML格式的代码覆盖率报告。 请注意,这只是一个简单的示例,您可以根据您的项目需要进行更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值