技术与生活 编程技术 VS2019 跨平台 CMake Hello

VS2019 跨平台 CMake Hello

本文指在学习练习如何使用VS2019建立一个CMake类型的工程,该工程可以跨Windows和Linux进行编译、运行。

本文指在学习练习如何使用VS2019建立一个CMake类型的工程,该工程可以跨Windows和Linux进行编译、运行。

1  学习目标

1.1  技术目标

  1. 学习VS2019 CMake工程的使用
  2. 学习跨平台的编译

1.2  具体内容

  1. 使用Windows上的VS 2019,生成跨平台工程
  2. 在VS2019中编写程序,程序目标输出结果:
    • 在windows平台输出:Hello windows!
    • 在linux平台输出:Hello linux!
    • 在其他平台输出(如果能运行的话):Hello unknown!
  3. 工程可Windows10下编译、运行
  4. 工程可以Centos 8.1.19下编译、运行:Centos 8.1.19,采用虚拟机

2  VS2019建立项目

2.1  建立CMakeHello项目

  • 在Windows上建立文件夹,用于存放解决方案和本工程

打开文件资源管理器或者命令行方式创建文件夹:D:\vs2019_C_ex\cmake_helloworld

【大家可据自己实际情况建立自己的文件夹,具体操作不再赘述】

  • 在VS2019中建立解决方案和项目

选择【文件】-【新建】-【项目】,或者使用快捷键Ctrl+Shift+N,见下图:

选择CMake项目,参见下图,然后点击【下一步】:

【项目名称】输入:CMakeHello

【解决方案名称】:采用默认,与项目名称相同

【位置】选择上面创建的文件夹 D:\vs2019_C_ex\cmake_helloworld\,参见下图,然后点击【创建】:

然后界面如下。看右面解决方案资源管理器视图—文件夹视图,看到生成了一个解决方案—CMakeHello,解决方案文件夹下又生成了一个CMakeHello项目文件夹,同时还生成了一个out文件夹。注意:使用Windows文件资源管理器打开查看,也是同样,本来此处显示的就是解决方案资源管理器视图—文件夹视图,哈哈。

我们通过双击可依次打开各文件夹,参见下图:

2.2  默认程序编译执行

VS2019已经为我们生成了一个默认的程序。

占击下图中紫色框中的运行按钮,可以运行程序。

程序运行结果会输出:Hello CMake. 参见下图:

3  VS2019编写程序

3.1  在VS中修改程序

双击打开CMakeHello.h,增加如下源码:

增加内容:

//据当前操作系统,定义PLATRORM
#if defined(__linux__)
#define PLATFORM "linux"
#elif defined(_WIN32)
#define PLATFORM "windows"
#else
#define PLATFORM "unknown"
#endif

修改后的文件参见下图:

双击打开CMakeHello.cpp,修改源码,修改后的源码如下:

// CMakeHello.cpp: 定义应用程序的入口点。
//

#include "CMakeHello.h"

using namespace std;

int main()
{
	cout << "Hello "<< PLATFORM <<"!" << endl;
	return 0;
}

实际上只修改下面这一行:

cout << "Hello "<< PLATFORM <<"!" << endl;

3.2  在VS中执行程序

执行方式同上面,执行结果参见下图,输出为:Hello windows!

4  Windows上编译运行

4.1  编译生成可执行程序

  • 首先进入命令行窗口

从【开始】-【Visual Studio 2019】-【x64_x86 Cross Tools Command …】,进入命令行窗口。

命令行窗口参考截图如下:

  • 使用cmake进行编译

执行命令如下:

D:\
cd D:\vs2019_C_ex\cmake_helloworld\CMakeHello
mkdir out_win
cd out_win
cmake ../

编译截图参考如下:

执行后在out_win下生成VS工程,可以使用VS2019打开并编译。我们在刚才的解决方案中也可以看到,因为我们的out_win放到了CMakeHello的解决方案目录下了。 我们选择out_win下的CMakeHello下的CMakeHello.vcxproj,参见下图:

右击上图所选,出现界面如下:

选择【生成】或者【重新生成】,生成可执行程序。

输出栏可以看到可执行程序的路径为:

D:\vs2019_C_ex\cmake_helloworld\CMakeHello\out_win\CMakeHello\Debug\CMakeHello.exe

4.2  执行程序

打开另一个普通命令行窗口,执行程序

命令如下:

D:\
cd D:\vs2019_C_ex\cmake_helloworld\CMakeHello\out_win\CMakeHello\Debug\
CMakeHello.exe

运行结果参见下图,因为是windows平台,所以输出:Hello windows!

5  Linux上编译运行

5.1  所用操作系统及编译器

操作系统为:Centos 8.1.1911

执行如下命令查看:

cat /etc/redhat-release

参见下图:

此处使用的gcc 版本为:

执行如下命令查看:

gcc –version

g++ –version

参见下图:

5.2  CMake下载安装

如果没有安装CMake,可采用下面两种方式进行安装。

联网安装方式

yum -y install cmake

参考截图如下,可看出我安装的版本为3.11,VS2019中要求的是3.8版本即可。

下载后安装方式

下载链接地址:https://cmake.org/download/

选择下载版本:cmake-3.19.4.tar.gz

具体安装不再叙述。

5.3  将程序copy到linux机器上

把D:\vs2019_C_ex\cmake_helloworld\CMakeHello目录下的以下内容copy到linux上的/home/vs2019_ex下面:

除了out和out_win两个目录之外的所有内容。

具体操作方法不再介绍。

5.4  编译生成可执行程序

进入CMakeHello工程主目录,建立build目录用于保存编译过程中产生的文件及编译结果,然后进入build目录进行编译,具体命令如下:

/home/vs2019_ex/CMakeHello
mkdir build
cd build
cmake ../

参考截图如下:

显示CMake后生成的内容,并进行编译,具体命令如下:

ls
make

执行结果截图参考如下:

5.5  执行程序

所生成的执行程序位于build/CMakeHello下,进入到目录并执行程序,命令如下:

cd CMakeHello
ls
./CMakeHello

执行结果截图参考如下,输入结果为:Hello linux!

本文来自网络,不代表【技术与生活】立场,转载请注明出处。http://4i-bird.com/2021/02/07/vs2019-%e8%b7%a8%e5%b9%b3%e5%8f%b0-cmake-hello/

作者: charlie_chen

编程是一生最爱: >> 架构与设计; >> 软件工程; >> 项目管理; >> 产品研发。
联系我们

联系我们

022-XXXXXXXX

在线咨询: QQ交谈

邮箱: 1549889473@qq.com

欢迎交流。
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部