cmake vscode 构建c 开发环境

cmake 构建工程所需软件

软件名作用
cmake用于构建项目生成makefile
mingw提供make gcc g++ 编译工具链
vscode编辑工具
vscode/cmake用于将在vscode中构建项目
vscode/cmake tools用于vscode中对cmake语法提示

安装以上软件并添加环境变量

vscode中构建测试项目

main.c

#include<stdio.h>
int main(void)
{
    printf("Hello,World\n");
    return 0;
}

CMakeLists.txt

#cmake最低版本需求,不加入此行会受到警告信息
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

PROJECT(HELLO) #项目名称
#把当前目录(.)下所有源代码文件和头文件加入变量SRC_LIST
AUX_SOURCE_DIRECTORY(. SRC_LIST)
#生成应用程序 hello
ADD_EXECUTABLE(hello ${SRC_LIST})

vscode中创建 tasks.json和了launch.json

  1. 打开项目任意源文件很重要,打开源文件按照后面操作才会产生tasks.json
  2. 点击调试选择【创建launch.json文件】,选择【C++/(GDBLLDB)】–>【gcc.exe生成或调试活动文件】,到处cmake构建项目完成
  3. 切换到源文件,【shif + ctrl +b】 编译
  4. 调试 【F5】

cmake 编译

mkdir build
cd build
cmake ./../

添加头文件路径

#添加头文件路径
include_directories(func)

添加源码目录

# 添加源码目录
add_subdirectory(func)

遍历目录源文件

# 遍历目录中所有源文件
aux_source_directory(. DIR_SRCS)

编译库

#add_library(project1 ${src})                           #编译为静态库
#add_library(project1 SHARED ${src})                    #编译为动态链接库
#编译为静态库
add_library( src ${DIR_SRCS})

cmaek 定义便利并赋值

SET(USER_KEY, "Hello World")

cmaek 打印

输出错误 FATAL_ERROR
message(FATAL_ERROR "
FATAL: In-source builds are not allowed")  
输出警告 WARNING
message(WARNING "OpenCV requires Android SDK tools revision 14 or newer.")
输出正常 STATUS
message(STATUS "Can't detect runtime and/or arch")
打印便利
SET(USER_KEY, "Hello World")
MESSAGE( STATUS "this var key = ${USER_KEY}.")
message(STATUS "Can't detect runtime and/or arch")

cmake 比较字符串

if(${arch} STREQUAL "arm")
message(STATUS "输入相同")
else
message(STATUS "输入不同")
endif()

cmake 条件语句

#根据输入变量选择编译工具
if(${arch} STREQUAL "arm")

elseif(${arch} STREQUAL "x86")


endif()

cmake 动态选择编译工具 (传参)

传递进去都是字符串

cmake . -Darch="x86"
cmake . -Darch="arm"
#根据输入变量选择编译工具
if(${arch} STREQUAL "arm")
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_COMPILER  "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER  "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
elseif(${arch} STREQUAL "x86")

set(CMAKE_C_COMPILER  "/usr/bin/gcc")
set(CMAKE_CXX_COMPILER  "/usr/bin/g++")
endif()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值