伤不起啊伤不起,恶心了两天了,网上教程几乎也没有,真的是。。。
好了,首先看一下main.asm的代码:
include \masm32\include\masm32rt.inc
.data?
value dd ?
.data
item dd 0
.code
start:
call main
inkey
exit
main proc
cls
print "Hello World",13,10
ret
main endp
end start
平淡无奇的代码,而且是教程代码,没道理出错,.386也没有也不知道它是默认谁的,编译了一下,能行,出来helloworld了
然后写一个sub.asm,然后link进去,代码同上
出现问题了:
sub.obj : error LNK2005: _start already defined in main.obj
sub.obj : error LNK2005: _main@0 already defined in main.obj
main.exe : fatal error LNK1169: one or more multiply defined symbols found
解决方法是:把sub.asm的start去掉,把main改成subproc,重新编译
好,现在仍然能够成功运行出helloworld
然后,给sub.asm里添加上一个public
好,同样可以,然后再在main.asm里添加上extrn
出现错误:
main.obj : error LNK2001: unresolved