我试图用C++运行我的简单汇编代码.我只有两个文件".cpp"文件和".asm"文件.在编译时会出现错误(见下文).如果有人可以提供帮助,我将不胜感激...... :)
这是我的"main.cpp"文件
#includeusing namespace std; extern "C" int GetValueFromASM(); int main(int argc, char *argv[]){ cout<<"value is:"< 我还有一个简单的"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我试过去物业 - >链接 - >附加图书馆目录并改变路径,但它不起作用.
我也试过去LINKER-> SYSTEM-> SUBSYSTEM并选择"Windows(/ SUBSYSTEM:WINDOWS)"或"Console(/ SUBSYSTEM:CONSOLE)"但两个都没有工作.任何人都可以帮助!! ..非常感谢
extern"C"表示前导下划线(c风格函数命名).只需将您的函数添加到.asm文件中,它就会开始链接.
UPD:如果您的项目没有构建,请确保您包含MASM构建自定义:转到项目上下文菜单 - >构建自定义... - >选中masm的复选框(.targets,.props).
然后转到.asm文件的属性,并选择项类型为"Microsoft宏汇编程序".