【发布时间】:2020-05-25 02:05:34
【问题描述】:
我正在尝试使用 Visual Studio 2019 获得一个非常简单的 x64 程序集,但它一直给我“致命错误 LNK1120: 1 unresolved externals”我确保在构建依赖项中检查了 masm,那就是在 x64 模式下;所以,不知道还能做什么,因为这是我第一次进入 asm。任何帮助将不胜感激!谢谢。
#include <iostream>
using namespace std;
extern "C" int someNumber();
int main() {
cout << "Number: " << someNumber() << endl;
return 0;
}
和
.code
someNumber proc
mov rax, 222
ret
someNumber endp
end
【问题讨论】:
-
链接器错误的其余部分是什么?即,它正在寻找的符号的错位名称是什么?您可能只需将程序集源中的
someNumber更改为_someNumber。 -
1>----- 构建开始:项目:汇编,配置:调试 x64 ------ 1>assemb.cpp 1>assemb.obj:错误 LNK2019:未解析的外部符号函数 main 1>C:\Users\user\source\repos\assemb\x64\Debug\assemb.exe 中引用的 someNumber:致命错误 LNK1120:1 未解决的外部 1>完成构建项目“assemb.vcxproj” - 失败。 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========
-
我尝试添加下划线,但仍然不行,并且不确定符号的错位名称是什么意思,但我会尽快查找并发布——我要去片刻。不过感谢您的回复。
-
链接CPP文件时需要包含汇编器创建的.obj文件。
标签: c++ visual-studio assembly x86-64