Cmake 在windos/mac/linux端安装 选取g++编译器 make生成可执行文件

 # Add Cmake Root to Path
 export CMAKE_ROOT=/Applications/CMake.app/Contents/bin/
 export PATH=$CMAKE_ROOT:$PATH

当关闭命令行窗口后,再重新开启一个命令行窗口,系统仍然表示无法识别cmake命令,再终端输入下面的命令

sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

在这里插入图片描述

  • Linux 环境配置
    安装cmake和cmake-gui
sudo apt-get install cmake cmake-gui
  • Windos 环境配置
    根据安装路径添加环境变量
    C:\Program Files\CMake\bin

在中终端输入

cmake version 3.19.1
 
CMake suite maintained and supported by Kitware (kitware.com/cmake).

由于linux和mac系统下, 根据cmake生成的makefile文件,进行make编译链接 生成可执行文件比较简单,此文主要介绍wini10下,生成exe。

win10下利用cmake 和g++编译器 生成exe

1.下载安装MinGW

1.1 下载安装32位MinGW

32位:http://www.mingw.org/
在这里插入图片描述点击Downloads,进入网址
https://osdn.net/projects/mingw/releases/

点击图标:
在这里插入图片描述

  • 安装mingw
    在这里插入图片描述

在这里插入图片描述
包管理器安装完成后将弹出这个界面:
在这里插入图片描述
找到mingw32-gcc-g++-bin,右键点击Mark for Installation
点击左上角的Installation菜单中的Apply changes选项,管理器将开始在线安装或更新被选中的组件。
如果由于某种原因安装未能成功,在退出程序前程序将给予提示,选择review changes选项重新安装即可。
根据需要安装:
mingw32-gdb-bin
mingw32-get-bin
通过运行 mingw-get-setup.exe 可以安装 mingw-get.exe 。
使用 mingw-get install 命令,可以安装以下语言的编译器或相关工具:
gcc, g++, gdb, mingw32-make, fortran

mingw-get install gdb
mingw-get install g++
  • 配置环境变量(根据安装路径)
C:\MinGW\bin
C:\MinGW\include
C:\MinGW\lib

在这里插入图片描述

  • 查看g++ 版本
D:\CProj\CmakeProj\demo1
λ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-static --enable-shared --enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --disable-build-format-warnings --prefix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --with-pkgversion='MinGW.org GCC Build-2'
Thread model: win32
gcc version 9.2.0 (MinGW.org GCC Build-2)

1.2 下载安装mingw-64

下载地址
在这里插入图片描述

  • 配置环境变量
    在path中添加:
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

2 cmake 选取g++编译器 生成exe

备注:1、以下操作在cmder窗口下操作
2、在MinGW的bin 目录下: C:\MinGW\bin里面的mingw32-make.exe 更改为make.exe,替换原有的make.exe (可以在终端直接使用make install)
文件tree:
在这里插入图片描述

  • hellow.cpp
#include <iostream>
using namespace std;
 
int main() {
  cout<<"Hello World"<<endl;
  return 0;
}
  • CMakeLists.txt
set(CMAKE_C_COMPILER "gcc")    #设置C编译器,源码只有cpp文件,没有.c文件,则不需配置
set(CMAKE_C_FLAGS "-g -Wall  -I /c/MinGW/include -L /c/MinGW/lib")

set(CMAKE_CXX_COMPILER "g++")  #设置C++编译器  #include和lib的位置要和自身安装的位置一致
set(CMAKE_CXX_FLAGS "-g -Wall  -I /c/MinGW/include -L /c/MinGW/lib")

PROJECT (Hellow CXX)
SET(SRC_LIST hellow.cpp)
ADD_EXECUTABLE(Hi ${SRC_LIST})

MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir " ${HELLO_SOURCE_DIR})

备注:
Set:是用来显式的定义变量的,我们之前用到的是SET(SRC_LIST main.cpp)如果有多个源文件,也可以定义成SET (SRC_LIST hello.cpp test1.cpp test2.cpp)定义了这个工程会生成一个文件名为hello的可执行文件,相关的源文件是
SRC_LIST中定义的源文件列表

  • 执行

D:\CProj\CmakeProj\demo1\build
λ cmake -G "MinGW Makefiles" -D "CMAKE_MAKE_PROGRAM:PATH=C:/MinGW/bin/make.exe" ..
-- The CXX compiler identification is GNU 9.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- This is BINARY dir
-- This is SOURCE dir
-- Configuring done
-- Generating done
-- Build files have been written to: D:/CProj/CmakeProj/demo1/build

D:\CProj\CmakeProj\demo1\build
λ ls
cmake_install.cmake  CMakeCache.txt  CMakeFiles/  Makefile

D:\CProj\CmakeProj\demo1\build
λ make -j4
Scanning dependencies of target Hi
[ 50%] Building CXX object CMakeFiles/Hi.dir/hellow.cpp.obj
[100%] Linking CXX executable Hi.exe
[100%] Built target Hi

D:\CProj\CmakeProj\demo1\build
λ .\Hi.exe
Hello World
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值