如何将 Windows 中的 CodeBlocks MingW 编译到 Ubuntu 或 Centos

Posted

技术标签:

【中文标题】如何将 Windows 中的 CodeBlocks MingW 编译到 Ubuntu 或 Centos【英文标题】:How to compile CodeBlocks MingW in Windows to Ubuntu or Centos 【发布时间】:2014-09-04 12:57:02 【问题描述】:

有没有办法在 Windows 中使用 MingWCodeBlocks 进行编译,以便它们可以在 Ubuntu 或 Centos 发行版中使用?

我尝试使用GNU GCC 选项进行编译,然后在obj/Release/ 文件夹下获得了带有.o 扩展名的输出文件。

当我在我的 Vagrant Ubuntu 机器下运行时出现此错误:

-bash: ./main.o: cannot execute binary file

如何编译它以使其在我的 Linux 机器上运行?

【问题讨论】:

【参考方案1】:

您要完成的工作的技术术语是cross-compilation。为此,您需要使用 GCC 源代码构建特定的交叉编译器。如果您仍想保留 MinGW,有一个页面解释了创建 ARM 交叉编译器所需的步骤:http://www.mingw.org/wiki/HostedCrossCompilerHOWTO。 (你必须修改目标)

GCC 支持的目标列表:

armv5te-android-gcc armv5te-linux-rvct armv5te-linux-gcc armv5te-无-rvct armv6-darwin-gcc armv6-linux-rvct armv6-linux-gcc armv6-无-rvct armv7-android-gcc armv7-darwin-gcc armv7-linux-rvct armv7-linux-gcc armv7-none-rvct mips32-linux-gcc ppc32-darwin8-gcc ppc32-darwin9-gcc ppc32-linux-gcc ppc64-darwin8-gcc ppc64-darwin9-gcc ppc64-linux-gcc sparc-solaris-gcc x86-android-gcc x86-darwin8-gcc x86-darwin8-icc x86-darwin9-gcc x86-darwin9-icc x86-darwin10-gcc x86-darwin11-gcc x86-darwin12-gcc x86-linux-gcc x86-linux-icc x86-os2-gcc x86-solaris-gcc x86-win32-gcc x86-win32-vs7 x86-win32-vs8 x86-win32-vs9 x86_64-darwin9-gcc x86_64-darwin10-gcc x86_64-darwin11-gcc x86_64-darwin12-gcc x86_64-linux-gcc x86_64-linux-icc x86_64-solaris-gcc x86_64-win64-gcc x86_64-win64-vs8 x86_64-win64-vs9 通用-darwin8-gcc 通用-darwin9-gcc 通用-darwin10-gcc 通用-darwin11-gcc 通用-darwin12-gcc 通用gnu

只有一个重要的警告:由于 Windows 不符合 POSIX,我认为您不能使用 signalspthreads

最后,振作起来,因为构建一个 cx 编译器是一项乏味的任务(很多晦涩的错误)。这就是专业开发人员为“​​即插即用”解决方案支付 $$$ 的原因。

编辑:this MXE project 可能对你有用

【讨论】:

这是否意味着如果我使用 CodeBlocks Ubuntu 版本在 Ubuntu 12.04 桌面上编译我应该能够在 Linux 服务器上运行而没有任何问题?也许我应该在 Ubuntu 下编译它? 绝对!本机开发比 xdev 容易得多。但是,centOS 与 Ubuntu 有点不同,因此您必须重新打包您的应用程序:askubuntu.com/questions/165643/… 好的。我决定使用我的 docker 容器在安装了 Boost 和 GNU g++ 的 CentOS 6.5 下编译它们。问题是,如何将包括头文件在内的多个文件编译成生产就绪的机器代码文件?它们是多个二进制文件还是一个?抱歉,这是我第一次为生产使用编译

以上是关于如何将 Windows 中的 CodeBlocks MingW 编译到 Ubuntu 或 Centos的主要内容,如果未能解决你的问题,请参考以下文章

codeblocks中文乱码原因及解决办法

codeblocks改运行框的颜色

codeblocks运行opengl

codeblocks无法编译运行 无法编译运行解决办法

如何设置codeblocks编译器

code::blocks 如何打断点