2011-01-25 11 views

答えて

7

AndroidはLinuxシステム上で動作します - DLLファイルは通常、Windows用にコンパイルされたバイトコードです。

4

DLLは「ダイナミックリンクライブラリ」の略で、Windowsの概念です。 linuxの同等物はSO(Shared Object)です。

CodeProjectのthis articleは、2つの類似点と相違点について参照できます。

このStackoverflow questionはかなり類似しています。

+0

への回答がある場合は、私の質問はここに描かれているので、それを達成する方法はありませんか? –

+0

@Muhammed - いいえありません。あなたは何を達成しようとしていますか? – Lior

+0

親切にここを見てくださいhttp://stackoverflow.com/questions/28393305/using-dll-library-in-android-application –

3

あなたはDLLのためにSRCファイルがある場合、その後、代わりにあなたのAndroidのコードにリンクしているELF32共有オブジェクトとして再コンパイルしてみてください( - 下のWindowsのソリューションがある):


set NDK_HOME=C:\Android\android-ndk-r9c // customize this var for your own location 
set LD_LIBRARY_PATH=%NDK_HOME%\platforms\android-18\arch-arm\usr\lib 
cd <C_SOURCE_DIRECTORY> 

REM -- TEMPORARILY COPY SOME LIBS COMPILER MAY NEED 
copy %NDK_HOME%\platforms\android-18\arch-arm\usr\lib\crtbegin*.o . 
copy %NDK_HOME%\platforms\android-18\arch-arm\usr\lib\crtend*.o . 

REM -- GENERATE YOUR OBJ FILE 
%NDK_HOME%\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc.exe -g -I%NDK_HOME%\platforms\android-18\arch-arm\usr\include -c -fPIC YourLib.c -o YourLib.o 

REM -- GENERATE SHARED OBJ FROM OBJ FILE 
%NDK_HOME%\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc.exe -g -L%NDK_HOME%\platforms\android-18\arch-arm\usr\lib -shared -o YourLib_so.so YourLib_so.o 

REM -- finally, remove the libraries previously copied to src directory 

del .\crtbegin*.o  
del .\crtend*.o 

Androidプロジェクトで結果の.soファイルを使用できるようになりました。

関連する問題