在windows下编译linux gcc – 在windows下编译nvcc

这里有一个有趣的问题,如果得到肯定的回答,会使交叉编译更容易。

由于gcc是用C ++编写的,是否可以在Windows MinGW G ++或VSC ++编译器上重新编译Linux gcc编译器,以便生成的Windows可执行文件能够将c代码编译到linux程序中?

如果是这样,那么需要做什么呢?

所以为了简化,这是我想要做的。

mingw32-g++ gcc.cpp -o gcc.exe 

这个命令可能不会起作用,因为如果那么容易的话,它可能已经完成了。 我问的是这个概念是否可能。

编辑:感谢和扩大到NVCC的问题

fvu能够回答gcc编译器的问题(请下次使用答案button),所以如果你有同样的问题,你可以感谢他(或她)。

作为这个问题的延伸,是否有可能编辑或重新编译nvcc或它使用的东西,以便nvcc.exe可以从CUDA C代码创build一个Linux程序? 我读过nvcc的windows变体只能使用Visual Studio cl.exe而不使用MinGW或CygWin。

有可能与cl.exe创buildLinux程序? 如果是这样,可以用来生成与nvcc.exe的Linux程序?

Solutions Collecting From Web of "在windows下编译linux gcc – 在windows下编译nvcc"

阅读gcc手册中关于交叉编译的章节,gcc的体系结构可以很容易地建立一个工具链,其目标与开发机器不同。

我从来没有走过你描述的确切路线,但我已经在Windows下构建了工具链,针对ARM9嵌入式Linux机器,就像一个魅力 – 用cygwin btw。 在这里寻找一个温柔的介绍。 这里也是非常有用的信息。

我不打算评论nvcc可以做什么,CUDA在我的(长)名单上的某个地方修补…

现在,可以cl生成Linux二进制文件? 这个问题的答案是“排序”:只要目标处理器来自一个受cl支持的处理器系列,那么它生成的目标文件可能不应该包含任何会阻碍它在Linux上执行的东西,因为它们会只是包含机器码。 这就是理论。 然而:

  • 由于Linux使用另一种可执行格式,因此您将需要一个能够理解Windows风格对象文件(afaik,COFF)的Windows托管链接器,并将它们链接到一起,形成一个Linux风格(ELF)可执行文件。 我从来没有听说过这样的野兽,虽然理论上它可能存在
  • 启动代码(一个包裹你的主函数的小程序)也会有所不同,需要编写
  • 还有一些例如与图书馆有关的问题

所以, 实际的答案是否定的,虽然这可能是一个无聊的学生夏季项目:)