为什么C++不能跨平台开发和如何实现C++visualstudio2019

发布时间:2021-05-02 来源: 万汇智联 浏览次数:

前言

为了实现C ++跨平台开发的目的,我计划从以下两个方面入手,即C ++无法进行跨平台开发以及如何实现跨平台开发。

为什么C ++无法跨平台开发

C ++不能跨平台。这并不意味着源程序不能跨平​​台,而是可执行文件不能跨平台。

由于C ++源程序必须经过预处理,编译,汇编和链接才能生成可执行文件,因此此过程将受到平台限制。例如,根据平台(CPU,操作系统和编译器等)的不同,汇编语言的版本也不同。因此,不能将Windows平台生成的exe扔到Linux平台上运行。

C ++本身只是一种语言,“跨平台”和“非跨平台”之间没有区别。所谓“非跨平台”是指编译后的目标代码与机器相关。

与Java相比,C ++编译仅一步完成,并且直接生成计算机可执行文件,而Java编译是生成的中间文件,可以将其放置在每个操作系统自定义的Java虚拟机中,然后它可以进一步编译成机器语言并执行,因此Java可以跨平台,并且其跨平台基于相应的JVM。

参考文章:

如何实现跨平台开发

由于C ++不能跨平台开发,原因是从源代码到可执行文件的过程取决于平台,并且与源代码无关,因此,只要选择一种编译方法即可不依赖平台,问题就可以解决〜

Visual Studio 2019可以创建C ++跨平台项目,官方文档链接为:

简单地说,可以在Visual Studio 2019中创建跨平台项目,该项目支持在Linux环境中开发c ++。操作如下:

c 的跨平台软件开发

c 的跨平台软件开发

单击“下一步”完成后,成功创建了一个跨平台项目,我们可以在该项目中进行编码〜

CMake项目文件介绍

官方网站文件:

CMake是一个开放源代码,跨平台的工具系列,旨在构建,测试和打包软件。 CMake用于控制使用简单平台和独立于编译器的配置文件的软件编译过程,并生成可在您选择的编译器环境中使用的本机Makefile和工作区。

CMake功能强大。

根据CMake的功能c 的跨平台软件开发c 的跨平台软件开发,由于编译过程不依赖平台,因此可以实现跨平台。

配置vs2019的CMake项目属性

CMake项目是通过CMakeLists.txt配置编译链接属性:

# CMakeList.txt: CMakeProject2 的 CMake 项目,在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)
# 将源代码添加到此项目的可执行文件。
add_executable (CMakeProject2 "CMakeProject2.h" "CMakeProject2.cpp" "test.cpp")
# TODO: 如有需要,请添加测试并安装目标。

将新项目添加到解决方案资源管理器项目中时,当添加cpp文件时,CMakeList.txt将自动更新以添加新的cpp文件

c 的跨平台软件开发

个人猜测,当编译器被选择为在Linux编译环境,相应的CMakeLists.txt会自动生成(这部分将被测试)

c 的跨平台软件开发

c 的跨平台软件开发

在Linux下的配置:

摘要

事实上,纯C ++语言可以跨平台开发,只要其编译过程不依赖于平台,并且CMake工具是与平台无关的编译工具,因此使用CMake编译C ++项目可以实现跨平台用途。

注意:C ++是一种编译语言,而VC ++是一种编程环境,即IDE,专业的C ++ SDK和开发人员在Windows下使用的专业软件开发平台

PS:有关与代码相关的规范,请参阅: