2015-05-12 72 views
0

我有一個JNI項目,我必須在Windows上工作(我正在開發Linux)。這個項目實際上依賴於靜態的第三方庫文件(歸檔即.a文件)。我正在嘗試使用i686-w64-mingw32-g++創建一個JNI共享庫文件,其中包括-static,後面是靜態第三方庫名稱。以下是我使用使用靜態庫i686-w64-mingw32-g ++

i686-w64-mingw32-g++ -v -L./ -L/home/user/jre1.8.0_40/lib/amd64/ -I/user/all/apps/Linux2/x86_64/gcc/4.8.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include -shared -o test.dll test.cpp -lstdc++ -static -thirdparty 

在-儘管放置第三方庫在當前工作目錄的命令,我不斷收到錯誤

/user/all/apps/Linux2/src/mxe/2013_12_03/usr/bin/../lib/gcc/i686-w64-mingw32/4.8.1/../../../../i686-w64-mingw32/bin/ld: cannot find -thirdparty 

請注意:我包括-I/user/all/apps/Linux2/x86_64/gcc/4.8.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include,以避免錯誤包括路徑之前我打的cannot find jni.h

我也試着編譯使用gcc代替g ++。

是否需要創建此第三方庫的.dll(當前它是存檔.a包含.obj文件)?

作爲交叉編譯器的新手,我可能會做錯事。請糾正我,任何建議,這將是非常有益的。謝謝。

回答

0

-Wl,--export-all-symbols -Wl,--add-stdcall-alias -v添加這個解決了我的問題