为不同平台上的Linux上编译C/C 源代码
Compiling C/C++ source code on Linux for different platforms
我已经读过有关在Windows上运行的Linux上编译C/C 源代码的一些内容。我还尝试了mingw,一切都很好。
但是,我不明白为什么我必须在Linux上使用MingW来制作在Windows上工作的二进制文件。是什么使G 输出无法在Windows上运行?还有什么使G 输出成为可能在Linux上运行它们?输出文件是否具有不同的结构:标题,数据等,并且只能通过特定的操作系统来解释它们?
谁能为我清楚吗?我很感激你们中的任何一个不仅要与业余有关,而且还要对一个对操作系统感兴趣并且想知道这背后的真正观点的人。
在Linux上构建二进制文件的窗户构造互相编译,就像在Linux上构建二进制文件一样,例如,Android可以做到。Windows和Linux机器可能(也许)具有类似的硬件,但它们是非常不同的操作平台。
即使在平台之间执行与prinf("Hello world")
一样简单的事情时,在平台级别上会发生什么。也就是说,将字符呈现到控制台的方式不同。在诸如fork()
之类的呼叫方面,面临更大的挑战,这与Windows Process Management所做的任何事情都不相对。
我相信,即使将程序代码和数据加载到内存之间的方式也不同于Windows和Linux,甚至在同一硬件上也是如此。
根本没有特定的理由认为为一个平台构建的本机二进制会在另一个平台上运行。使用Java,我们已经习惯了编译代码是跨平台的想法,但是Java .class文件中的内容不是本机可执行代码 - 我们依靠Java运行时系统来执行在平台级别上正确的事情。使用C/C ,我们需要构建工具来做到这一点(而且通常也有一些程序员专业知识的量度)。
- 使用Bison生成的编译器编译源代码
- 最佳实践 - 在单元测试中链接到 lib 或编译源代码
- Bitdefender指责病毒,同时使用CodeBlocks编译c ++源代码
- 生成文件:为每个包含的标头自动编译源代码
- 在不重新编译源代码的情况下更改C++(C)程序中定义的数字
- C++14/17 项目可以使用使用 C++11 标准编译的二进制库还是需要重新编译源代码
- 为不同平台上的Linux上编译C/C 源代码
- 在Windows 10上使用wxWidgets(MinGW模式)编译源代码的问题
- 使用g++编译C++源代码时的VLA
- 链接到 Lua 5.2.4 时出现问题,即使在内联编译源代码时也是如此
- 视觉 是否可以使用 Clang 3.1 和 VC11 Beta 标头编译C++源代码
- 如何通过C++编译C++源代码
- 如何使用Emabarcadero C++编译C源代码
- 我应该如何在mac上用c++编译源代码,以确保它在遵守ANSI/ISO的同时在Windows Visual Studio
- G++ 不会使用 -O0 编译我的源代码,但它使用 -O2 -DNDEBUG 编译源代码,我该如何解决它
- 编辑和编译源代码,而无需将副本存储在磁盘内存中
- 编译c++源代码生成的HipHop
- 在c++中剥离编译源代码的任何脚本
- 如何在eclipse中用ccache编译源代码时设置c++断点
- 编译c++源代码为.dll文件