C和x2B中程序之间的差异+;在Windows和Linux下开发 在Windows和Linux下开发的C++程序有什么不同? 为什么在Windows下C++开发的程序不能在Linux下使用? 本机程序不兼容,因为Windows有一套与Linux完全不同的API集。正如其他人提到的,每个平台也使用不同的可执行格式。此外,这两个平台都有自己的一套库,程序将与之链接和/或共享。例如,Windows程序通常在Visual Studio中使用特定于Windows的库(如MFC、Win32API等)开发。这些库在linux中不可用,因此程序甚至不会编译,除非小心确保使用跨平台库(如QT)
但是,如果小心,可以在代码中使用跨平台库,并且可以在两个平台下编译相同的程序。对于这样的程序,您需要仔细地将任何特定于平台的详细信息(文件系统位置等)放入它们自己的文件中。然后,您需要设置适当的C和x2B中程序之间的差异+;在Windows和Linux下开发 在Windows和Linux下开发的C++程序有什么不同? 为什么在Windows下C++开发的程序不能在Linux下使用? 本机程序不兼容,因为Windows有一套与Linux完全不同的API集。正如其他人提到的,每个平台也使用不同的可执行格式。此外,这两个平台都有自己的一套库,程序将与之链接和/或共享。例如,Windows程序通常在Visual Studio中使用特定于Windows的库(如MFC、Win32API等)开发。这些库在linux中不可用,因此程序甚至不会编译,除非小心确保使用跨平台库(如QT),c++,windows,linux,C++,Windows,Linux,但是,如果小心,可以在代码中使用跨平台库,并且可以在两个平台下编译相同的程序。对于这样的程序,您需要仔细地将任何特定于平台的详细信息(文件系统位置等)放入它们自己的文件中。然后,您需要设置适当的#define语句和/或makefile指令,以确保每个平台的构建中都包含适当的文件 当然,如果您使用“跨平台”语言,如Java或Python,并且在实现中不使用任何特定于平台的代码,那么您的程序可以在这两种环境下运行 注意:尽管可执行文件的格式不同,但在Windows上开发的一些程序可以在Linux下使
#define
语句和/或makefile指令,以确保每个平台的构建中都包含适当的文件
当然,如果您使用“跨平台”语言,如Java或Python,并且在实现中不使用任何特定于平台的代码,那么您的程序可以在这两种环境下运行
注意:尽管可执行文件的格式不同,但在Windows上开发的一些程序可以在Linux下使用名为C++的仿真器执行。C++本身是可移植的。但是有些C++库不是。如果C++程序使用一些不可移植的库,则该程序是不可移植的。
例如,C++程序使用GUI的东西来绘制,因为MFC仅支持在Windows中,所以这个C++程序不能直接编译或运行在Linux上。p> 每个操作系统定义一个API。如果您编写代码来调用,那么它在Linux上就不存在了。如果你编写API代码,它不会在Windows中直接跳出来攻击你 要了解更多信息,请下载一个重要的开源程序(例如,或),并查看其“配置”脚本如何安排在任意位置进行编译。
- Windows和Linux使用不同的容器格式来保存可执行代码(vs)
- Windows和Linux有完全不同的API(除了只使用CRT和
- Windows和Linux具有完全不同的目录结构
- Windows运行
- Linux运行
我相信Linux的某些版本允许您直接加载为Windows设计的设备驱动程序,而无需重新编译。但是,这是一种非常特殊的用途,并且该技术并不普遍使用。有两个主要原因 从理论上讲,一些语言(如C)的相同程序(源代码)可以在Windows和Linux上运行。但汇编只是有所不同;这意味着您必须为每个平台编译相同的源代码文件 但实际上,每个操作系统都有一组不同的API。和不同的技术,以更快地完成工作。。。这通常会吸引开发人员使用它们。而且它们不遵守标准,因此失去了可移植性
这是本机程序。。。不管怎么说,有很多种语言。。。它们确实是跨平台的,但为了便于携带,您必须牺牲速度。这是一个大话题
不要过于迂腐,但开发一个程序与构建和执行它是不同的。在许多情况下,在一个操作系统上编写的程序可以构建并编译为在另一个操作系统上执行。正如其他人指出的那样,其他程序依赖于仅由特定操作系统或仅驻留在该操作系统上的库提供的某些功能。因此,必须在OS.< /P> < P>上编译并运行。当C++程序在平台上编译时,它最终变成机器能够理解的形式(即机器代码)。在后台,程序使用系统调用执行特权操作。这些系统调用是通过方法或API实现的。这些方法因平台而异。因此,在每个平台上,编译的代码都是不同的。如果您想编译,可以使用许多交叉编译器