所以我的解决方案中有两个文件。
TEST.ASM
.code
test proc
mov eax, 1
ret
test endp
end
和
Source.cpp
#include <iostream>
#include <conio.h>
extern "C" int test();
int main()
{
std::cout << "eax = " << test() << std::endl;
_getch();
return 0;
}
我在配置管理器中将解决方案平台设置为x64,并在Build Customization中检查masm。我发现了两个相关的帖子,但建议没有帮助。我正在关注youtube上的一个视频并完全像作者那样做,但我得到了这些错误:
1>Source.obj : error LNK2019: unresolved external symbol _test referenced in function main
1>C:\Users\omar\Desktop\ASM\x64\Debug\ASM.exe : fatal error LNK1120: 1 unresolved externals
有人可以帮我弄清问题是什么吗?我真的想进入x64程序集。感谢
答案 0 :(得分:2)
您的汇编程序的函数名称必须是_test
,而不仅仅是test
。您可以在链接器的错误消息中看到:
error LNK2019: unresolved external symbol _test
/\
||
right here ---------------------------------
有关详细信息,请参阅C name decoration in Microsoft Windows。
答案 1 :(得分:0)
假设您使用的是Visual Studio,则需要将程序集文件的名称添加到其他依赖项中
假设汇编代码工作正常,并且它与c ++源文件位于同一目录中,它应该可以工作
答案 2 :(得分:0)
固定。关注this
另外,我不得不使用下划线