0

ここで私が見逃しているものがあるに違いありません。vcvars64.bat を適切な環境でセットアップしました。libcmt.lib を除いて、ほぼすべてのライブラリのコンパイルとリンクがうまく機能します。(MSVCRT.lib の /MT バージョン。) これは 32 ビット VC 2010 に含まれていますが、私は Platform SDK 7.1 と共にインストールされた amd64 フォルダーから cl.exe と link.exe を使用しているので、なぜこれを取り上げているのかわかりません。

これが私のコマンドラインです:

link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\dev\Python31\libs /LIBPATH:C:\dev\Python31\PCbuild\amd64 ws2_32.lib advapi32.lib kernel32.lib /EXPORT:PyInit_winrandom build\temp.win-amd64-3.3\Release\src/winrand.obj /OUT:build\lib.win-amd64-3.3\Crypto\Random\OSRNG\winrandom.pyd /IMPLIB:build\temp.win-amd64-3.3\Release\src\winrandom.lib /MANIFESTFILE:build\temp.win-amd64-3.3\Release\src\winrandom.pyd.manifest /VERBOSE

私が試したこと:/nodefaultlib:libcmtリンカがそのライブラリを見さえしないようにします。libcmt.lib /nodefaultlib:libcmtどちらの順序でも、同じ動作を再アクティブ化するだけで、詳細な出力に見られるように、古い間違ったパスのみを検索します。

Searching [SDK]\lib\x64\ws2_32.lib:
Searching [SDK]\lib\x64\advapi32.lib:
Searching [SDK]\lib\x64\kernel32.lib:
Searching [VS]\VC\LIB\libcmt.lib:

私のパスには lib フォルダーがなく、%lib% は "[SDK]\lib\x64;[VS]\VC\LIB" (フル パスは省略) です。

この1つのライブラリが最初に間違ったパスで検索されている理由がわかりません。誰か知っていますか?

4

1 に答える 1

1

LIB環境変数の値が間違ってい[VC]\lib\amd64ます。x64バージョンのCRTライブラリを含むディレクトリを取得する必要があります。

どうしてそんなに間違えたのかは不明です。vcvarsall.batを使用し、「x64」を渡して適切なビルド環境を選択する必要があります。次に、「x64」を渡した場合は、適切な.batファイルvc \ bin \ amd64\vcvars64.batを呼び出します。vcvars64.batを直接使用しないでください。

VSをインストールしたときに作成された事前に作成されたショートカットを優先します。[スタート]+[プログラム]にあります。必ず「VisualStudiox64Win64コマンドプロンプト」と表示されているものを選択してください。vsvarsall.batを呼び出します

于 2012-10-21T13:43:59.090 に答える