gpt4 book ai didi

c++ - 错误 LNK2019 : unresolved external symbol referenced in function main

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:37 25 4
gpt4 key购买 nike

我正在尝试用 C++ 运行我的简单汇编代码。我只有两个文件“.cpp”文件和“.asm”文件。编译时出现错误(见下文)。如果有人能提供帮助,我将不胜感激...:)

这是我的“main.cpp”文件

#include <iostream>
using namespace std;

extern "C" int GetValueFromASM();

int main(int argc, char *argv[]){

cout<<"value is:"<<GetValueFromASM()<<endl;
cin.get();

return 0;
}

我还有一个简单的“asm.asm”文件

.code
GetValueFromASM proc
mov rax,3254
ret
GetValueFromASM endp
end

尝试构建时出现此错误:

1>main.obj : error LNK2019: unresolved external symbol GetValueFromASM referenced in             
function main

1>..\visual studio 2012\Projects\AllAssembly\x64\Debug\AllAssembly.exe : fatal error LNK1120: 1 unresolved externals

我尝试转到 PROPERTIES->LINKS->ADDITIONAL LIBRARY DIRECTORIES 并更改路径但它没有用。

我也试过转到 LINKER->SYSTEM->SUBSYSTEM 并选择“Windows (/SUBSYSTEM:WINDOWS)”或“Console (/SUBSYSTEM:CONSOLE)”,但两者均无效。谁能帮忙!!..非常感谢

最佳答案

extern "C"表示前导下划线(c 风格的函数命名)。只需在 .asm 文件中为您的函数添加前缀,它就会开始链接。

UPD:如果您的项目没有构建,请确保您包含了 MASM 构建自定义:转到项目上下文菜单 -> 构建自定义... -> 检查 masm (.targets, .props) 的复选框。

然后转到 .asm 文件的属性并选择项目类型为“Microsoft 宏汇编程序”。

关于c++ - 错误 LNK2019 : unresolved external symbol referenced in function main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com