私はC++でチェスエンジンを書いていましたが、これはアプリ "Chess for Android"でコンパイルするためにコンパイルしたいものです。C++のコンソールプログラムをアンドロイドプロセスとしてコンパイルするにはどうすればいいですか?
Finally, developers can do all development in C/C++ and generate stand-alone native code using the appropriate compiler toolchain (e.g. CodeSourcery for ARM or the toolchain that ships with the NDK). This third approach is used by Chess for Android to import engines that do not ship with the application.
チェスエンジンは簡単プログラムである:ここでは
はvery very crudelyが彼のアプリ上でサードパーティ製のチェスエンジンを実行する方法について説明し、アプリの作者からのポストからの抜粋です。アプリケーションが実行され、ユーザーがコマンドを送信すると、プログラムは思考し、最良の移動の詳細を示す文字列を吐き返します。
グラフィックスなどのアプリは必要ありません。それはstdin/stdout経由で(パイプ経由で)実際に通信されるプロセスだけです。 「Chess for Android」アプリは、プロセスとの会話を担当します。私は、「Chess for Android」アプリで実行できるプロセスとして、自分のエンジンをどのように取得するのかを理解する必要があります。
ご返信ありがとうございます。私はNDKをダウンロードしました。PATH変数にルートフォルダを設定しました。私は今私のプログラムをコンパイルしようとしていますが、いくつかのヘッダーがありませんか?それは "致命的なエラー:iostream:No such file or directory #include"と書かれています。も同じです。私はここにあるコンパイラ(?)を使用しています:toolchains \ arm-linux-androideabi-4.9 \ prebuilt \ windows \ bin \ arm-linux-androideabi-gcc-4.9これをどうやって解決するのですか?申し訳ありませんが、これは簡単ですが、私は本当に何をすべきかわからないし、過去20分間の回答を研究しようとしています –
user2936448
@antlersoft Desktop Linux x86バイナリは、互換性のない、またはAndroid x86のものと互換性がありません。どちらのシステムもLinuxカーネルを使用していますが、違いはほとんどありません。まずAndroidはGlibcの代わりにBionic libcを使い、100%API互換ではないので、AndroidはELFの '/ system/bin/linker'のために完全に別のインタプリタを使います。デスクトップバイナリもロードされません。/lib/ld-linux.so.2'を実行します。また、ハンドヘルドデバイスは、デスクトップデバイスABIとは異なるABIを使用してもよい。 – Sergio
@ user2936448 - コンパイラのコマンドラインで-sysrootフラグを正しく設定していないようなエラーが表示されます。 – antlersoft