2013-08-18 88 views
2

我有機會獲得一個64位OS X環境,但我想,以顯着降低的過程中釋放本地庫構建的x86/x86_64/armv6的Linux和32/64位Windows。交叉從OS編譯Java JNI庫的Windows/RPI X/Linux的

我該如何交叉編譯OS X的JNI代碼(並且從64位Ubuntu Linux中無法實現)?我必須安裝哪些編譯器(我正在使用macports)以及從哪裏可以安裝必須包含和鏈接的外部JDK環境?需要什麼特殊的編譯器/鏈接器標誌?

我使用的是maven-native-plugin,因此我可以輕鬆更改每個目標的編譯器,鏈接器和JDK_HOME。每個目標平臺有一個模塊(即pom.xml)。

該項目對於那些對細節感興趣的人是netlib-java/native_ref

+0

爲什麼不把Linux/WIN32/OS作爲OS X機器上的虛擬機,啓用某些共享目錄,然後從單個共享代碼庫在單臺機器上執行「本機」操作? –

+0

這就是我從OS X訪問Linux的方式。我沒有備用許可證來爲Windows執行相同操作。這令人筋疲力盡,甚至不是ARM的選擇。單一的maven構建命令會大大簡化我的構建。 – fommil

回答

2

我發現,各種Linux交叉編譯器來與macports

  • arm-elf-gcc
  • i386-elf-gcc
  • x86_64-elf-gcc
  • i386-mingw32-gcc

形式與64位Windows交叉編譯on its way

不幸的是,我的目的,我還需要一個Fortran編譯,所以我要求更多的幫助,在現在的macports mailing lists

編輯:FORTRAN交叉編譯器的當前狀態(和MinGW在一般)在OS X是可悲的。目前最好的建議是在VirtualBox中運行一個Linux機器,並從那裏交叉編譯所有目標。兩個版本不是最優的,但比所有原生版本都好。

+0

我相信現在在Ubuntu上有一個常用的用於Win64的MinGW,包是'gcc-mingw-w64'。 – JavaProphet