【发布时间】:2014-10-17 11:21:26
【问题描述】:
我在 Visual Studio 中创建了 windows c++ 项目来学习如何编写 asm 函数。 所以在我的项目中,我用这个简单的代码得到了 hello.asm:
.686
.MODEL FLAT
.STACK
.DATA
.CODE
hello PROC
xor eax,eax
ret
hello ENDP
END
和 asm_test.cpp 的主要功能如下:
#include "stdafx.h"
#include <Windows.h>
extern "C" void hello();
int _tmain(int argc, _TCHAR* argv[])
{
hello();
return 0;
}
所以一般来说 ml.exe 编译 asm 文件到 hello.obj 没有任何问题 但是 hello() 函数不知道应该从哪里获取它。这是编译器告诉我的。
1>------ Построение начато: проект: asm_test, Конфигурация: Debug Win32 ------
1> Assembling hello.asm...
1>asm_test.obj : error LNK2019: ссылка на неразрешенный внешний символ _hello в функции _wmain
1>G:\renderer\asm_test\Debug\asm_test.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
抱歉,在russion,但是很明显找不到hello功能
【问题讨论】:
标签: visual-studio function assembly linker masm