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

软件环境

Windows 11
VS Code None
CMake 3.26.4-windows-x86_64
MinGW None

电脑系统配置

  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. windows环境用vscode配置gcc编译代码

    2024-05-10 00:12:02       47 阅读
  2. windows编译libiconv库

    2024-05-10 00:12:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 00:12:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 00:12:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 00:12:02       87 阅读
  4. Python语言-面向对象

    2024-05-10 00:12:02       96 阅读

热门阅读

  1. Scala基础学习-循环

    2024-05-10 00:12:02       31 阅读
  2. redis之集群

    2024-05-10 00:12:02       26 阅读
  3. 【QEMU系统分析之实例篇(十八)】

    2024-05-10 00:12:02       29 阅读
  4. vue 钩子函数updated什么时候触发

    2024-05-10 00:12:02       33 阅读
  5. 获取xml内容,使用dom4J

    2024-05-10 00:12:02       34 阅读
  6. 秋招后端开发面试题 - JVM类加载机制

    2024-05-10 00:12:02       28 阅读