您要完成的技術術語是cross-compilation
。爲此,您需要使用GCC源創建特定的交叉編譯器。如果你仍然想保留MinGW,有一個頁面可以解釋創建ARM交叉編譯器所需的步驟:http://www.mingw.org/wiki/HostedCrossCompilerHOWTO。 (你必須修改目標)的GCC所支持的目標
列表:
的ARMv5TE,Android的GCC的ARMv5TE-Linux的RVCT的ARMv5TE-Linux的GCC 的ARMv5TE-NONE-RVCT 的ARMv6 -darwin-GCC的ARMv6-Linux的RVCT的ARMv6-Linux的GCC 的ARMv6-NONE-RVCT 的ARMv7-Android的GCC的ARMv7-達爾文-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-win32-vs9 x86_64-darwin9-gcc x86_64-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86-x86- darwin10-GCC x86_64的-darwin11-GCC x86_64的-darwin12-GCC x86_64的Linux的海灣合作委員會x86_64的Linux的-ICC x86_64的-Solaris的GCC x86_64的-Win64上-GCC x86_64的-Win64上-VS8 x86_64的-Win64上,VS9 萬向darwin8 -gcc universal-darwin9-gcc universal-darwin10-gcc universal-darwin11-gcc universal-darwin12-gcc generic-gnu
有一個大的警告:由於Windows不符合POSIX,我不認爲你可以使用signals
或pthreads
。
最後,要自己動手,因爲構建一個cx編譯器(大量晦澀的bug)是一項繁瑣的任務。這就是爲什麼profesionnal開發人員爲「plug'n'play」解決方案支付$$$的原因。
編輯:this MXE project能對你有用
這是否意味着,如果我使用的代碼塊Ubuntu的版本我應該能夠沒有任何問題,在Linux服務器上運行在Ubuntu 12.04桌面編譯?也許我應該在Ubuntu下編譯這個呢? – 2014-09-04 13:58:12
絕對!本機開發比xdev容易得多。但是,centOS與Ubuntu有點不同,所以你必須重新打包你的應用:http://askubuntu.com/questions/165643/are-centos-programs-compatible-with-ubuntu – lucasg 2014-09-04 14:03:15
好的。我決定使用我的docker容器在CentOS 6.5下編譯它們,並安裝了Boost和GNU g ++。問題是,如何將包括頭文件在內的多個文件編譯成生產就緒機器代碼文件?他們是多個二進制文件還是一個?對不起,這是我第一次編譯生產使用 – 2014-09-04 14:15:28