C语言使用技巧(二十一):VS CODE在windows下配置CMAKE编译环境【实现C/C++可同时在一个文件夹下编译】
2023-09-14 09:09:14 时间
一、安装mingw32或Dev-C++的教程请自行百度
二、安装CMAKE
下载网站:https://cmake.org/download/
下载后直接安装参考链接:
MakerCloud
注意:一定要配置CMAKE环境变量,否则VS CODE无法自动检测到。
三、VS CODE配置编译与源程序的测试
安装CMAKEl两个插件工具:
然后新建一个文件夹,使用VS CODE打开该文件夹
打开文件后,会自动跳出配置信息,点击“是”和“创建”,创建会跳出一个窗口,此时输入自己设置的项目名称【该项目名称是之后鼠标点击运行的vs code 界面正下方的位置处,假设这里设置的名称为CPP,输入之后执行会出现直接创建可执行的文件,这里选择那一个都可以】
如果选择“创建可执行文件”,则会跳出下面的配置结果。
CMakeLists.txt自动生成的内容为:
cmake_minimum_required(VERSION 3.0.0)
project(CPP VERSION 0.1.0)
include(CTest)
enable_testing()
add_library(CPP CPP.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
内部会自动生成一个cpp模板源文件main.cpp,内容为:
#include <iostream>
int main(int, char**) {
std::cout << "Hello, world!\n";
}
鼠标点击下方红色区域内的按钮即可运行,如果需要创建其他源程序只需在CMakeLists.txt中的add_library(CPP CPP.cpp)处增加或者在后面一行增加相应的项目名称和源程序文件即可,其他操作方式同上。
如果上面操作都熟悉,那么不同源程序文件的函数之间的各种调用则会方便很多,否则函数接口必须放置在同一个文件夹内。
以上教程的处理方式与CLion 2020.1.3创建编译的环境一模一样。
附件
编写CMakeLists.txt
接下来编写CMakeLists.txt文件,该文件放在和src,include的同级目录,实际方哪里都可以,只要里面编写的路径能够正确指向就好了。CMakeLists.txt文件,如下所示:
#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.2)
#2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(test_sqrt)
#3.head file path,头文件目录
INCLUDE_DIRECTORIES(
include
)
#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH
${DIR_SRCS}
)
#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
#7.add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
CMakeLists.txt主要包含以上的7个步骤,具体的意义,请阅读相应的注释。
相关文章
- 【C++】基础及引用
- C语言/C++常见习题问答集锦(四十六) 之定义学生结构体(学生数据均以二进制方式输出)
- 【华为校招机试 2023】 简单的自动曝光、平均像素值(C++ Java JavaScript Python)
- 【华为OD机试 2023】 过滤组合字符串(C++ Java JavaScript Python)
- vscode配置C++
- C++实现解zip解压缩功能:将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(windows平台)
- C++之枚举类简单学习
- C++ Windows API 之GetDriveType
- C++读写excel表格数据(LibXL for Windows) v3.6.5 正式特别版(附补丁)
- VC++使用zlib压缩及解压数据,使用base64编码及解码数据(附源码)
- VC++获取Windows操作系统的语言版本(附源码)
- VC++使用SDL定时器替代Windows窗口定时器消息(附源码)
- VC++计算文件和文件夹的大小(附源码)
- C++中引用不可重新指向别的对象 理解
- Windows下用Eclipse搭建C/C++开发环境
- C++ 中的信号的处理
- 基于visual c++之windows核心编程代码分析(30)Telnet协议编程
- 【C++ 科学计算】在Windows下编译安装Armadillo库(亲测有效)
- C/C++,windows下编译报错:error C3861: “snprintf”: 找不到标识符