win32HelloWorld vc6.0 link2001 error
LINK : error LNK2001: unresolved external symbol _WinMainCRTStartuptest.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: 'd:\masm32\bin\Link.EXE' : return code '0x460'
Stop.
链接错误,估计是子系统的问题,报错入口函数不对。你检查下子系统,设置为控制台子系统。还有尽量别用VC6.0了,那个太老了,有些新标准可能不支持。 zzxhh628 发表于 2022-4-14 12:29
链接错误,估计是子系统的问题,报错入口函数不对。你检查下子系统,设置为控制台子系统。还有尽量别用VC6. ...
D:\masm32\workspace>link16 /subsystem:console test.obj;
Microsoft (R) Segmented Executable LinkerVersion 5.60.339 Dec5 1994
Copyright (C) Microsoft Corp 1984-1993.All rights reserved.
LINK : warning L4017: /subsystem : unrecognized option name; option ignored
test.obj : fatal error L1101: invalid object module
Object file offset: 1 Record type: 4c 你是写32位汇编?可能你需要指定入口点,不然没法链接。别用link16.exe,有没有link.exe? 你写32位汇编?这个可能需要你自己指定入口点,为什么用link16.exe,有没有link.exe? zzxhh628 发表于 2022-4-14 12:42
你写32位汇编?这个可能需要你自己指定入口点,为什么用link16.exe,有没有link.exe?
D:\masm32\workspace>link /subsystem:console test.obj
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
test.exe : fatal error LNK1120: 1 unresolved externals 18135437048 发表于 2022-4-14 12:58
D:\masm32\workspace>link /subsystem:console test.obj
Microsoft (R) Incremental Linker Version 5.1 ...
18135438048哥,你加我给我解决一下吧,百度让用vs2017 ml /c /coff test.asm
Link /SUBSYSTEM:CONSOLE test.obj
这是编译链接过程,你再编译链接一次试试。不知道你的代码是什么,可能你的代码有问题,估计入口点不正确。 ml /c /coff test.asm
Link /SUBSYSTEM:CONSOLE test.obj
这是编译和链接的命令,你是这么编译的吧? ml /c /coff test.asm
Link /SUBSYSTEM:CONSOLE test.obj
你是这么编译的嘛? 18135437048 发表于 2022-4-14 13:00
18135438048哥,你加我给我解决一下吧,百度让用vs2017
不一定要用VS2017,你把代码发过来,估计入口点有问题。 18135437048 发表于 2022-4-14 13:00
18135438048哥,你加我给我解决一下吧,百度让用vs2017
这个是什么号? zzxhh628 发表于 2022-4-14 13:11
这个是什么号?
ok.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
.data
szCaption db 'Welcome to Fishc.com!',0
szText db 'Hello World!',0
.code
start:
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
invoke ExitProcess,NULL
end
18135437048 发表于 2022-4-14 15:03
ok
对,
ml /c /coff test.asm
link /subsystem:windows test.obj
link /subsystem:console test.obj
link16 /subsystem:console test.obj
nmake
NAME = test
OBJS = $(NAME).obj
RES= $(NAME).res
LINK_FLAG = /subsystem:windows
ML_FLAG = /c /coff
$(NAME).exe: $(OBJS) $(RES)
Link $(LINK_FLAG) $(OBJS) $(RES)
.asm.obj:
ml $(ML_FLAG) $<
.rc.res:
rc $<
clean:
del *.obj
del *.res
end后面少个标号start。 这个对于窗口程序子系统就用windows,对于控制台就用console。 我找到问题了,少个start
end start
不作死就用不了一上午,细节啊
一般用不到link16吧,应该直接link就行。
页:
[1]