main以外のグローバル関数をNASMから呼び出せない理由を教えてください。(質問する前に)はい、私はこれに関するすべての質問をスタックオーバーフローとインターネットで約8時間読みました。
C++コード。
void main();
extern "C" void nasm_function(void);
void c_function()
{
}
void main()
{
nasm_function();
system("pause");
}
NASMコード、
extern _c_function
extern _main
segment .text
global _nasm_function
_nasm_function:
call _main
call _c_function
出力、
1>リンク中...1>my_asm.obj:エラーLNK2001:未解決の外部シンボル_c_function 1> F:\ Projects \ OSDev \ assmebly_test \ Debug \ project.exe:致命的なエラーLNK1120:1未解決の外部
ご覧のとおり、mainのリンクエラーは発生していません。どうしてか分かりません。:)
設定、
building nasm using custom-build-rules with nasm.exe -f win32
Calling convention is __cdecl (/Gd)
Visual Studio 2008
NASM version 2.05
Didn't include my_asm.obj as a input to linker
誰でも何が問題なのか教えてください。前もって感謝します。(これはサンプルプログラムですが、それでも問題が発生することに注意してください)