この質問は著者のウェブサイトにすでに投稿していますが、ここでも質問するかもしれないと思いました。
私はこのセットアップでpylzmaをインストールしようとしています:
- Windows 7 x64
- Python 2.6.6 x64
- Windows Server2003SDKからのamd64コンパイラ
- gitリポジトリのクローンを作成しましたgit://github.com/fancycode/pylzma.git
簡単easy_install pylzma
に私はこれを手に入れました:
cl:コマンドライン警告D9025:「/MD」を「/MT」でオーバーライドpylzma.c src / pylzma / pylzma.c(85):警告C4244:「=」:「Py_ssize_t」から「int」への変換、損失の可能性データの
src / pylzma / pylzma.c(102):エラーC2275:'CSha256':式としてのこのタイプの不正使用c:\ users \ xavier.lapointe \ appdata \ local \ temp \ easy_install-2mfkqu \ pylzma-0.4.3 \ src \ pylzma ../ 7zip / C / Sha256.h(18):「CSha256」の宣言を参照
src / pylzma / pylzma.c(102):エラーC2146:構文エラー:';'がありません 識別子「sha」の前
src / pylzma / pylzma.c(102):エラーC2065:'sha':宣言されていない識別子
src / pylzma / pylzma.c(103):エラーC2065:'sha':宣言されていない識別子
src / pylzma / pylzma.c(103):警告C4133:'関数':互換性のない型-'int*'から'CSha256*'まで
src / pylzma / pylzma.c(104):エラーC2143:構文エラー:';'がありません 'タイプ'の前
src / pylzma / pylzma.c(105):エラーC2143:構文エラー:';'がありません 'タイプ'の前
src / pylzma / pylzma.c(106):エラーC2143:構文エラー:';'がありません 'タイプ'の前
src / pylzma / pylzma.c(107):エラーC2143:構文エラー:';'がありません 'タイプ'の前
src / pylzma / pylzma.c(108):エラーC2065:'ラウンド':宣言されていない識別子
src / pylzma / pylzma.c(108):エラーC2065:'ラウンド':宣言されていない識別子
src / pylzma / pylzma.c(108):エラーC2065:'ラウンド':宣言されていない識別子
src / pylzma / pylzma.c(108):エラーC2065:'ラウンド':宣言されていない識別子
src / pylzma / pylzma.c(109):エラーC2065:'sha':宣言されていない識別子
src / pylzma / pylzma.c(109):警告C4133:'関数':互換性のない型-'int*'から'CSha256*'まで
src / pylzma / pylzma.c(110):エラーC2065:'sha':宣言されていない識別子
src / pylzma / pylzma.c(110):警告C4133:'関数':互換性のない型-'int*'から'CSha256*'まで
src / pylzma / pylzma.c(111):エラーC2065:'sha':宣言されていない識別子
src / pylzma / pylzma.c(111):警告C4133:'関数':互換性のない型-'int*'から'CSha256*'まで
src / pylzma / pylzma.c(111):エラーC2065:'temp':宣言されていない識別子
src / pylzma / pylzma.c(112):エラーC2065:'i':宣言されていない識別子
src / pylzma / pylzma.c(112):エラーC2065:'i':宣言されていない識別子
src / pylzma / pylzma.c(112):エラーC2065:'i':宣言されていない識別子
src / pylzma / pylzma.c(113):エラーC2065:'temp':宣言されていない識別子
src / pylzma / pylzma.c(113):エラーC2065:'i':宣言されていない識別子
src / pylzma / pylzma.c(113):エラーC2109:添え字には配列またはポインター型が必要です
src / pylzma / pylzma.c(116):エラーC2065:'sha':宣言されていない識別子
src / pylzma / pylzma.c(116):警告C4133:'関数':互換性のない型-'int*'から'CSha256*'まで
エラー:セットアップスクリプトがエラーで終了しました:コマンド'"C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ BIN \ amd64 \cl.exe"'が終了ステータス2で失敗しました
それからグーグルした後、私はそれがコンパイラー(c90対c99)に関するものだと思いました、何人かの人々は.c拡張子を.cppに変更することを提案しました。だから私はこれを行い、それに応じてsetup.pyを変更しました(主にファイル名)。
その後、成功すると、CpuArch.c(pp)と構文エラーのある別のファイルを少し調整した後、コンパイルされます。
これで、リンカーチョークが発生します。
C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ BIN \ amd64 \ link.exe / DLL / nologo / INCREMENTAL:NO /LIBPATH:C:\dev\pylzma\build\temp.win-amd64-2.6 \ Release \ src \ pylzma / LIBPATH:C:\ Python26 \ libs / LIBPATH:C:\ Python26 \ PCbuild \ amd64 user32.lib oleaut32.lib / EXPORT:initpylzma build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma.obj build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma_decompressobj.obj build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma_compressfile.obj build \ temp.win-amd64 -2.6 \ Release \ src / pylzma / pylzma_decompress.obj build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma_compress.obj build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma_streams.obj build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma_aes.obj build \ temp.win-amd64-2.6 \ Release \ src / pylzma / pylzma_decompress_compat.obj build\temp.win-amd64-2。6 \ Release \ src / pylzma / pylzma_decompressobj_compat.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzFind.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzmaDec.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzmaEnc.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ CpuArch.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Aes.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ AesOpt.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Sha256 .obj build \ temp.win-amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads.obj /OUT:build\lib.win-amd64-2.6\pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE: build \ temp.win-amd64-2.6 \ Release \ src / pylzma \ pylzma.pyd.manifestwin-amd64-2.6 \ Release \ src \ sdk \ LzFind.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzmaDec.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzmaEnc.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ CpuArch.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Aes.obj build \ temp.win -amd64-2.6 \ Release \ src \ 7zip \ C \ AesOpt.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Sha256.obj build \ temp.win-amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads.obj /OUT:build\lib .win-amd64-2.6 \ pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\src/pylzma \ pylzma.pyd.manifestwin-amd64-2.6 \ Release \ src \ sdk \ LzFind.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzmaDec.obj build \ temp.win-amd64-2.6 \ Release \ src \ sdk \ LzmaEnc.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ CpuArch.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Aes.obj build \ temp.win -amd64-2.6 \ Release \ src \ 7zip \ C \ AesOpt.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Sha256.obj build \ temp.win-amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads.obj /OUT:build\lib .win-amd64-2.6 \ pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\src/pylzma \ pylzma.pyd.manifest6 \ Release \ src \ sdk \ LzmaEnc.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ CpuArch.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Aes.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ AesOpt.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Sha256.obj build \ temp.win -amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads .obj /OUT:build\lib.win-amd64-2.6\pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE:build\temp.win-amd64 -2.6 \ Release \ src / pylzma \ pylzma.pyd.manifest6 \ Release \ src \ sdk \ LzmaEnc.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ CpuArch.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Aes.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ AesOpt.obj build \ temp.win-amd64-2.6 \ Release \ src \ 7zip \ C \ Sha256.obj build \ temp.win -amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads .obj /OUT:build\lib.win-amd64-2.6\pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE:build\temp.win-amd64 -2.6 \ Release \ src / pylzma \ pylzma.pyd.manifestobj build \ temp.win-amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads.obj /OUT:build\lib.win-amd64-2.6\pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE:build \ temp.win-amd64-2.6 \ Release \ src / pylzma \ pylzma.pyd.manifestobj build \ temp.win-amd64-2.6 \ Release \ src \ compat \ LzmaCompatDecode.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / LzFindMt.obj build \ temp.win-amd64-2.6 \ Release \ src / sdk / Threads.obj /OUT:build\lib.win-amd64-2.6\pylzma.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\src/pylzma\pylzma.lib /MANIFESTFILE:build \ temp.win-amd64-2.6 \ Release \ src / pylzma \ pylzma.pyd.manifest
pylzma.obj:警告LNK4197:エクスポート'initpylzma'が複数回指定されました。最初の仕様を使用するライブラリbuild\temp.win-amd64-2.6 \ Release \ src / pylzma\pylzma.libおよびオブジェクトbuild\temp.win-amd64-2.6 \ Release \ src / pylzma\pylzma.expを作成する
pylzma.obj:エラーLNK2001:未解決の外部シンボル "char const * const doc_decompress"(?doc_decompress @@ 3QBDB)
pylzma.obj:エラーLNK2001:未解決の外部シンボル "struct _object * __cdecl pylzma_decompress(struct _object *、struct _object *)"(?pylzma_decompress @@ YAPEAU_object @@ PEAU1 @ 0 @ Z)
pylzma.obj:エラーLNK2001:未解決の外部シンボル "char const * const doc_compress"(?doc_compress @@ 3QBDB)
Aes.obj:エラーLNK2019:未解決の外部シンボル "void __cdecl AesCtr_Code_Intel(unsigned int *、unsigned char *、unsigned __int64)"(?AesCtr_Code_Intel @@ YAXPEAIPEAE_K @ Z)関数AesGenTablesで参照
Aes.obj:エラーLNK2019:未解決の外部シンボル "void __cdecl AesCbc_Decode_Intel(unsigned int *、unsigned char *、unsigned __int64)"(?AesCbc_Decode_Intel @@ YAXPEAIPEAE_K @ Z)関数AesGenTablesで参照
Aes.obj:エラーLNK2019:未解決の外部シンボル "void __cdecl AesCbc_Encode_Intel(unsigned int *、unsigned char *、unsigned __int64)"(?AesCbc_Encode_Intel @@ YAXPEAIPEAE_K @ Z)関数AesGenTablesで参照
AesOpt.obj:エラーLNK2019:関数 "void __cdecl AesCbc_Encode_Intel(union __m128i *、union __m128i *、unsigned __int64)"(?AesCbc_Encode_Intel @@ YAXPEAT__
AesOpt.obj:エラーLNK2019:関数 "void __cdecl AesCbc_Encode_Intel(union __m128i *、union __m128i *、unsigned __int64)"(?AesCbc_Encode_Intel @@ YAXPEAT__
AesOpt.obj:エラーLNK2019:関数 "void __cdecl AesCbc_Decode_Intel(union __m128i *、union __m128i *、unsigned __int64)"(?AesCbc_Decode_Intel @@ YAXPEAT__
AesOpt.obj:エラーLNK2019:関数 "void __cdecl AesCbc_Decode_Intel(union __m128i *、union __m128i *、unsigned __int64)"(?AesCbc_Decode_Intel @@ YAXPEAT__ -2.6 \ pylzma.pyd:致命的なエラーLNK1120:10の未解決の外部
エラー:コマンド'"C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ BIN \ amd64\link.exe"'が終了ステータス1120で失敗しました
現在、msdn doc(リンカーエラーについて)を使用しても、これらのリンカーの問題が何であるかを理解するのに苦労しています。おそらくC/C++に関する知識が不足しているためです。
したがって、基本的に私の質問は次のとおりです。
- これらのリンカーの問題を修正する方法はありますか?
- これらのファイルの名前を.cから.cppに変更するのは間違っていますか?はいの場合、msvc amd64コンパイラを使用して.cとしてコンパイルすることは可能ですか?
編集 あまり答えがないので、いくつか質問を追加すると思います。
リンカーエラーに関しては、どのようなアプローチをとっていますか?
Web上で答えを見つけるのに役立つロジックはありますか(このMSDNリンカーエラーと組み合わせて)?
多くの人が32ビットシステムで正常にコンパイルするのを見てきましたが、64ビットで正常にコンパイルできますが、アーキテクチャタイプが原因でリンクに関して失敗する可能性はありますか?
私は完全に機能する答えよりも役立つかもしれないヒントをもっと探しています。
あなたの助けをどうもありがとう(: