0

Visual Studio コマンド プロンプトで link.exe を使用する:

link.exe "C:\Users\Jon\Desktop\euler\asm\test" kernel32.dll

これまでに役立つ情報を提供します:LINK : fatal error LNK1181: cannot open input file 'kernel32.dll' システム dll に対してリンクできないのはなぜですか?

私はGoLinkに移りました:

"C:\Program Files (x86)\nasm\golink.exe" /console test.obj Kernel32.dll

リンクは問題ありませんが、実行するとすぐにクラッシュします。NASMを使用しています"C:\Program Files (x86)\nasm\nasm.exe" -fwin64 "test.asm"

ここに私のアセンブラPastebinがあります

4

1 に答える 1

0

MSVC のリンクは DLL に直接リンクできません。kernel32.lib代わりにインポート ライブラリを使用する必要があります。

link.exe "C:\Users\Jon\Desktop\euler\asm\test.obj" kernel32.lib

link.exeインポート ライブラリを見つけることができるように、環境が正しく設定されていることを確認する必要があります。これは、多くの場合vcvarsall.bat、ツールの実行に使用されるコマンド ライン ウィンドウを構成する (または同様の) スクリプト/バッチ ファイルによって行われます。ビルド ツールの環境を構成するものがない場合は、完全なパスを使用するか、/libpathリンカー オプションを使用してディレクトリを渡すことにより、ライブラリの場所を渡す必要があります。

私は GoLink が何であるかわからないので、何が正しいか間違っているかについてコメントすることはできません...

于 2012-11-07T03:16:47.803 に答える