c++ 跨平台开发

前言

要达到c++跨平台开发目的,我打算从为什么C++不能跨平台开发如何实现跨平台开发这两个方面入手

为什么C++不能跨平台开发

C++不能跨平台,不是指源程序不能跨平台,而是可执行文件不能跨平台。

因为C++源程序要经过预处理、编译、汇编和链接过程才生成可执行文件,但由于这过程中会受到平台限制,如汇编语言有不同版本,和平台有关(CPU、操作系统和编译器等);所以不能将windows平台生成的exe扔到Linux平台运行。

C++ 本身只是一种语言,并无“跨平台”与“不跨平台”之分。所谓“不跨平台”,只是编译出来的目标代码是机器相关的而已。

而与java相比较,C++编译是一步到位的,直接生成了机器可执行文件,而java编译是生成的中间文件,可以放到各个操作系统所定制的java虚拟机中去,之后再进一步编译成机器语言并执行,所以Java可跨平台,它的跨平台是建立在有对应JVM基础之上的。

参考文章:

https://blog.csdn.net/m0_37738114/article/details/105092315

https://bbs.csdn.net/topics/10161854?depth_1-utm_source=distribute.pc_relevant_right.none-task-discussion_topic-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant_right.none-task-discussion_topic-BlogCommendFromBaidu-1

 

如何实现跨平台开发 

既然c++不能跨平台开发原因是在于从源码到可执行文件过程依赖于平台,而与源码没关系,那么只要选择一个编译过程不依赖平台的编译方式就可以解决问题~

visual studio 2019可以创建c++跨平台项目,官方文档链接为:https://docs.microsoft.com/en-us/cpp/build/get-started-linux-cmake?view=vs-2019

简单点来说就是,在安装了支持在Linux环境下开发c++的visual studio 2019中可以创建跨平台项目。操作如下:

点击下一步完成后,就成功创建一个跨平台的项目,我们就可以在这个项目中编码了~

CMake项目文件介绍

官网文档:https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019

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

CMake is powerful.

  • CMake supports multiple development environments and compilers on the same project (e.g., Visual Studio IDE, QtCreator, JetBrains, vim, emacs, gcc, MSVC, clang, Intel)
  • CMake supports multiple languages including C/C++/CUDA/Fortran/Python, and also supports running arbitrary custom commands as part of the build
  • CMake supports continuous integration (CI) testing in concert with Jenkins, Travis, CircleCI, GitlabCI, and almost any CI system via CTest. Test results are displayed using CDash (www.cdash.org).
  • CMake supports integration of 3rd party libraries into your project.
    参考CMake官网链接:https://www.kitware.com/build-with-cmake-build-with-confidence/

由CMake特性可知,它是从编译过程不依赖平台从而实现跨平台。

配置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文件

个人猜想,当选择编译方式为Linux编译环境后会自动生成对应的CMakeLists.txt(该部分待实验)

Linux下的配置:https://docs.microsoft.com/en-us/cpp/linux/cmake-linux-project?view=vs-2019

总结

其实纯粹的c++语言可以跨平台开发,只要它的编译过程不依赖于平台即可,而CMake工具是不依赖平台的编译工具,因此用CMake编译c++项目就可以达到跨平台目的。

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

PS:代码相关的规范见:https://blog.csdn.net/Quellaaa/article/details/105537040

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C跨平台开发技术指南PDF是一本介绍跨平台开发技术的PDF电子书。跨平台开发是指开发在不同操作系统或平台上都能运行的软件或应用程序。由于不同操作系统的底层架构和开发语言不同,跨平台开发技术成为开发者解决不同平台兼容性问题的有效方式。 这本指南提供了详细的跨平台开发技术解决方案和实践经验,帮助开发者理解和应用跨平台开发技术。指南首先介绍了跨平台开发的基本概念和原理,包括平台差异性、可移植性和兼容性等内容。然后,它详细介绍了几种常见的跨平台开发技术,如HTML5、React Native、Flutter和Xamarin等。 在介绍每种技术时,指南会提供相关的开发环境安装和配置教程,以及示例代码和项目实战经验。通过这些实例,开发者可以学习如何使用不同的跨平台开发技术来构建应用程序,从而提高开发效率和应用的用户体验。 此外,该指南还包括了跨平台开发常见问题和解决方案,如性能优化、调试技巧和用户界面设计等。这些内容可以帮助开发者在实际项目中避免常见问题,并更好地应对挑战。 总之,C跨平台开发技术指南PDF是一本有关跨平台开发技术的权威参考书,适用于想要了解和应用跨平台开发技术的开发者。通过学习指南中的内容,开发者可以更好地掌握跨平台开发技术,提高软件开发效率和应用程序的质量。 ### 回答2: 《c 跨平台开发技术指南 pdf》是一本介绍C语言跨平台开发技术的电子书籍。C语言是一种通用的编程语言,具有高效性和灵活性,在跨平台开发中应用广泛。 通过阅读该电子书,读者可以了解C语言如何应用于不同操作系统和平台上,实现跨平台开发。书中可能会介绍一些常见的跨平台开发工具和框架,例如Qt和CMake,通过使用这些工具,开发者可以更加方便地编写跨平台的代码。 此外,该书还可能涉及到一些跨平台开发中的注意事项和技巧,例如处理不同操作系统的差异性、处理文件路径问题等等。对于有一定C语言基础的开发者来说,这本书可以提供一些有关跨平台开发的实践经验和建议。 总之,《c 跨平台开发技术指南 pdf》是一本针对想要学习和实践C语言跨平台开发开发者们的指南,可以帮助读者更好地理解并应用C语言在各种平台上进行开发的技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值