首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows与Linux下开发C++程序的差异

问Windows与Linux下开发C++程序的差异
EN

Stack Overflow用户
提问于 2010-02-28 10:33:32
回答 8查看 16.6K关注 0票数 12

在Windows和Linux下用C++开发的程序有什么不同?

为什么在C++下开发的程序不能在Linux下使用?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-02-28 10:38:06

Windows和Linux使用不同的容器格式来保存可执行代码(与ELF).

  • Windows和Linux相比,PE有完全不同的API(除了只使用CRT和的小程序,
  • 和Linux有完全不同的目录结构

您可以编写一个程序,它可以使用任何一组API(例如,使用Qt),并且可以处理任何一种目录结构,但是由于容器格式的不同,您仍然无法在两个操作系统上运行相同的文件。

这可以通过使用Wine来解决。

票数 10
EN

Stack Overflow用户

发布于 2010-02-28 10:38:57

简而言之,

运行PE format executables

的

此外,即使有在PE和ELF之间进行转换的工具,在Windows和Linux之间,与操作系统交互所需的程序指令也完全不同。只有最受限制的仅限计算的代码(只进行计算,根本不与操作系统交互)可以在没有特殊操作的情况下在系统之间移植。然而,这很少这样做。

我相信Linux的一些版本允许你直接加载为Windows设计的设备驱动程序,而不需要重新编译。但是,这是一个非常特殊的应用程序,并且该技术并不普遍使用。

票数 4
EN

Stack Overflow用户

发布于 2010-02-28 10:38:06

每个操作系统定义一个API。如果您编写代码来调用Win32 API,那么它在Linux上就不存在了。如果你使用Windows编写代码,在POSIX中它不会直接跳出来。

要了解更多信息,请下载一个重要的开源程序(例如,Perl或Python),并查看其“配置”脚本如何安排在这两个地方编译。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2349827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档