【发布时间】:2014-09-26 11:36:20
【问题描述】:
我用汇编写了一个简单的 hello world 程序。我想在 Windows 中生成它的 .exe 文件,但是当我将我的目标文件与 io.obj 链接时,我得到一个链接器错误:“未解析的外部符号”。
这是我的代码:
include io.h
.386
.model flat,stdcall
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
.stack 4096
.data
msg db 'hello world!',13,10,0
.code
_start:
output msg
invoke ExitProcess,0
end _sart
public _start
end
我可以用命令成功组装程序:
ml /c /coff x.asm
但不能与命令链接:
link /subsystem:console /entry:start x.obj io.obj
链接器错误是:
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
LINK : error LNK2001: unresolved external symbol _start
1.obj : error LNK2001: unresolved external symbol itoa_proc
io.obj : error LNK2001: unresolved external symbol itoa_proc
1.obj : error LNK2001: unresolved external symbol atoi_proc
io.obj : error LNK2001: unresolved external symbol atoi_proc
1.obj : error LNK2001: unresolved external symbol out_proc
io.obj : error LNK2001: unresolved external symbol out_proc
1.obj : error LNK2001: unresolved external symbol ins_proc
io.obj : error LNK2001: unresolved external symbol ins_proc
1.obj : error LNK2001: unresolved external symbol inc_proc
io.obj : error LNK2001: unresolved external symbol inc_proc
1.exe : fatal error LNK1120: 6 unresolved externals
我做错了什么?
【问题讨论】:
-
io.h 包含什么
-
包含 itoa、atoi、输出、输入和输入的宏定义作者:R. Detmer
标签: assembly linker masm masm32