Windows上でAndroidのために牡丹を構築することができません。

AkimovIgor:

私は命令に従った、アンドロイドのための牡丹を構築する方法を理解することはできませんここに

$輸出CXX =は/ opt /アンドロイド - NDK /ツールチェーン/ LLVM /構築済み/のlinux-x86_64の/ binに/ aarch64-linuxの-android28-打ち鳴らす++

$ ./configure.py --os =アンドロイド--cc =打ち鳴らす--cpu = arm64

私はあなたがどのように窓のステップバイステップ、ちょうどあなたのコマンド例で、このライブラリーを構築したのを私に伝えることができ、また以前の問題を読んで私を助けていない、Windows上でこのコマンドを使用する方法を理解できないのですか?

私が使用--ccビンのオプションconfigure.pyを、それは、Windows用の解決策と考えられているコンパイラへのパスを指定することが、私は何を持っていることは次のとおりです。

D:\Programming\Libraries\botanAndroid\botan-master>python configure.py --cc-bin=D:\Android\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi28-clang++ --os=android --cc=clang --cpu=armv7
INFO: configure.py invoked with options "--cc-bin=D:\Android\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi28-clang++ --os=android --cc=clang --cpu=armv7"
INFO: Configuring to build Botan 2.14.0 (revision unknown)
INFO: Running under 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)]
INFO: Autodetected platform information: OS="Windows" machine="AMD64" proc="Intel64 Family 6 Model 142 Stepping 10, GenuineIntel"
INFO: Canonicalized CPU target armv7 to arm32
WARNING: Could not execute ['D:\Android\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi28-clang++', '-E', 'src\build-data\detect_version.cpp']: [WinError 193] %1 is not an application of Win32
WARNING: Tried to get clang version, but output '0.0' does not match expected version format
WARNING: Could not execute ['D:\Android\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi28-clang++', '-E', '-fstack-protector', '-pthread', 'src\build-data\detect_arch.cpp']: [WinError 193] %1 is not an application of Win32
WARNING: Unable to detect target architecture via compiler macro checks
INFO: Target is clang:0.0-android-arm32
INFO: Assuming target arm32 is little endian
INFO: Skipping (dependency failure): asio certstor_sqlite3 rdrand sessions_sqlite3
INFO: Skipping (incompatible CPU): aes_armv8 aes_ni aes_power8 chacha_avx2 clmul_cpu clmul_ssse3 idea_sse2 p9_darn rdrand_rng rdseed serpent_avx2 sha1_armv8 sha1_sse2 sha1_x86 sha2_32_armv8 sha2_32_bmi2 sha2_32_x86 sha2_64_bmi2 sha3_bmi2 shacal2_avx2 shacal2_x86 simd_avx2 sm4_armv8 threefish_512_avx2
INFO: Skipping (incompatible OS): certstor_system_macos certstor_system_windows commoncrypto getentropy proc_walk win32_stats
INFO: Skipping (no enabled compression schemes): compression
INFO: Skipping (requires external dependency): boost bzip2 lzma openssl sqlite3 tpm zlib
INFO: Loading modules: adler32 aead aes aes_vperm aont argon2 aria asn1 auto_rng base base32 base58 base64 bcrypt bcrypt_pbkdf bigint blake2 block blowfish camellia cascade cast128 cast256 cbc cbc_mac ccm cecpq1 certstor_flatfile certstor_sql certstor_system cfb chacha chacha20poly1305 chacha_rng chacha_simd32 checksum cmac comb4p cpuid crc24 crc32 cryptobox ctr curve25519 des dev_random dh dl_algo dl_group dlies dsa dyn_load eax ec_group ecc_key ecdh ecdsa ecgdsa ecies eckcdsa ed25519 elgamal eme_oaep eme_pkcs1 eme_raw emsa1 emsa_pkcs1 emsa_pssr emsa_raw emsa_x931 entropy fd_unix ffi filters fpe_fe1 gcm gmac gost_28147 gost_3410 gost_3411 hash hash_id hex hkdf hmac hmac_drbg hotp http_util idea iso9796 kasumi kdf kdf1 kdf1_iso18033 kdf2 keccak keypair lion locking_allocator mac mce mceies md4 md5 mdx_hash mem_pool mgf1 misty1 mode_pad modes mp newhope nist_keywrap noekeon noekeon_simd numbertheory ocb ofb par_hash passhash9 pbes2 pbkdf pbkdf1 pbkdf2 pem pgp_s2k pk_pad pkcs11 poly1305 poly_dbl prf_tls prf_x942 psk_db pubkey rc4 rfc3394 rfc6979 rmd160 rng roughtime rsa salsa20 scrypt seed serpent serpent_simd sessions_sql sha1 sha2_32 sha2_64 sha3 shacal2 shacal2_simd shake shake_cipher simd siphash siv skein sm2 sm3 sm4 socket sodium sp800_108 sp800_56a sp800_56c srp6 stateful_rng stream streebog system_rng thread_utils threefish_512 tiger tls tls_10 tls_cbc tss twofish utils uuid whirlpool x509 x919_mac xmss xtea xts
INFO: Using hardlink to link files into build dir (use --link-method to change)
INFO: Botan 2.14.0 (revision unknown) (unreleased undated) build setup is complete

今、私は現在の環境を設定するには、VisualStudioを2017ネイティブツールのコマンドプロンプトを使用して、またはvcvarsall.batを呼んでいます。

f9c69e9781fa194211448473495534:

Windowsホスト上でAndroidのバイナリを構築するための牡丹のサポートが限定されているようです。あなたはこの仕事をするために黒魔術を使用する必要があります。

ビルドプロセスは、2つのフェーズ、設定フェーズとメイク相からなります。

リンクされたドキュメントでのAndroid固有の命令は、構成のみの位相を全体ビルドプロセスをカバーしていません。メイク相について、あなたはその後、Windows固有の命令(に従う必要はありリンク)。

構成フェーズ:

あなたはあなたのマシンへのパスを調整し、以下のバイナリが必要になります。

  • 打ち鳴らす++(注意.cmd終わりに):C:\Development\android-ndk-r19c-windows-x86_64\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi28-clang++.cmd

  • と: C:\Development\android-ndk-r19c-windows-x86_64\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ar.exe

牡丹フォルダで、実行するconfigureコマンドを:

python.exe .\configure.py --cc-bin=C:\Development\android-ndk-r19c-windows-x86_64\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi28-clang++.cmd --ar-command=C:\Development\android-ndk-r19c-windows-x86_64\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ar.exe --os=android --cpu=armv7 --verbose

メイク相

構成フェーズが発生Makefile牡丹フォルダに。このファイルにいくつかの調整を行う必要があります。

  • ラインでall: libs cli tests docs削除docs

    理由:追加のツールは、ドキュメントファイルを構築するために必要とされます。あなたが本当にドキュメントが必要な場合は、これらのツールをインストールしようとすることができますが、私はこれをテストしていません。

  • 出現交換するln -fsとしcopy

    理由:Linuxのはln -fs、パラメータリストの2番目のファイルから最初にシンボリックリンクを作成します。このコマンドは利用できないので、第二に、最初のファイルをコピーし、それを変更することは私には実用的な回避策のように思えます。また、Windows上のリンクを作成するための適切なコマンドにそれを変更することができますが、あなたのAndroidのターゲットに展開するとき、あなたは再びそれを調整する必要があるかもしれません。

  • ラインで始まるLIBOBJS =CLIOBJS =TESTOBJS =のすべての出現置き換える、\とし/ファイル全体では、出現の置き換え.\では./理由:Windowsスタイルのパス区切り文字を使用すると、\いくつかの場所で問題が発生するようです。

  • ブロックを検索# Executable targetsして# Library targets挿入@<< ... <<(に基づいて、NMAKEのインラインファイル機能として知られているパラメータリストをまわり、このことは、このように見えるようにするために、その答え):

# Executable targets
$(CLI): $(LIBRARIES) $(CLIOBJS)
  $(EXE_LINK_CMD) @<<
$(ABI_FLAGS) $(CLIOBJS) $(EXE_LINKS_TO) $(LDFLAGS) -o $@
<<

$(TEST): $(LIBRARIES) $(TESTOBJS)
  $(EXE_LINK_CMD) @<<
$(ABI_FLAGS) $(TESTOBJS) $(EXE_LINKS_TO) $(LDFLAGS) -o $@
<<

# Library targets
./libbotan-2.a: $(LIBOBJS)
  $(AR) @<<
$(AR_OPTIONS) $@ $(LIBOBJS)
<<

./libbotan-2.so.13: $(LIBOBJS)
  $(CXX) @<<
-shared -fPIC -Wl,-soname,libbotan-2.so.13  $(ABI_FLAGS) $(LDFLAGS) $(LIBOBJS) $(LIB_LINKS_TO) -o $@
<<

理由:この変更がなければ、私はパラメータリストが長すぎることについてエラーを得ました。

あなたはNMAKE(Visual Studioのの一部)が必要になります。私のマシン上でそれをにインストールされていますC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\Hostx64\x64\nmake.exe

牡丹フォルダで、実行しますnmake.exeその後、あなたの牡丹のフォルダには、バイナリ含まれている必要がありbotanbotan-testおよびライブラリをlibbotan-2...

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=351321&siteId=1