首页
社区
课程
招聘
关于Radasm的项目命令行[求助]
发表于: 2007-5-17 18:19 9151

关于Radasm的项目命令行[求助]

2007-5-17 18:19
9151
今天用Radasm新建一个DOS模板程序,编译通过,链接,竟然出错

D:\Masm32\Bin\doslnk.exe /NOLOGO "test.obj" "",,,,,""
Object Modules [.obj]: /NOLOGO test.obj+
D:\Masm32\Bin\ML.EXE /DMASM /DDOS /Zm /c /nologo /I"D:\Masm32\Include" "test.asm"
Assembling: test.asm
D:\Masm32\Bin\doslnk.exe /NOLOGO "test.obj" "",,,,,""
Object Modules [.obj]: /NOLOGO test.obj+
LINK : fatal error L1093: test.obj : object file not found

在网上查了些资料,也没看懂多少

最后抠了一下午Radasm的帮助,和自己打doslnk进行链接,发现DOS模板配置文件里有BUG,
如果自己用命令doslnk /nologo "test.obj""",,,,,""能正确链接,但如果是doslnk /nologo "test.obj" "",,,,,""就会出现Object Modules [.obj]: /NOLOGO test.obj+这样的错误
后来试着把
3=0,O,$B\doslnk.exe /NOLOGO,3,"|||||"
改为:
3=0,O,$B\doslnk.exe /NOLOGO $3 |||||
但还是出现下面这样的错误,不过已经正确链接过了,已经生成了test.exe
D:\masm32\Bin\doslnk.exe /NOLOGO test.obj ,,,,,
D:\masm32\Bin\ML.EXE /DMASM /DDOS /Zm /c /nologo /I"D:\masm32\Include" "test.asm"
Assembling: test.asm
D:\masm32\Bin\doslnk.exe /NOLOGO test.obj ,,,,,
LINK : fatal error L1093: test.obj : object file not found

后来再抠Radasm的帮助文件,发现把上面这行再改成
3=5,O,$B\doslnk.exe /NOLOGO $3 |||||
就不再报错了,不知道还有没有别的修改方法?

还有Radasm帮助上说3=0和3=5中的0和5是在相应命令执行以前要删除的文件,0代表project.rap,这个文件通常应该是项目的配置文件
但是...
[Win32 App]
Files=1,1,1,0,0
Folders=1,0,1
MenuMake=1,1,1,1,1,1,1,1,0,0
;x=FileToDelete/CheckExistsOnExit,
;(O)utput/(C)onsole/0,Command,
;MakeFile1[,MakeFile2[,MakeFile3...]]
1=4,O,$B\RC.EXE /v,1
2=3,O,$B\ML.EXE /c /coff /Cp /nologo /I"$I",2
3=5,O,$B\LINK.EXE /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"$L" /OUT:"$5",3,4
4=0,0,,5
5=rsrc.obj,O,$B\CVTRES.EXE,rsrc.res
6=*.obj,O,$B\ML.EXE /c /coff /Cp /nologo /I"$I",*.asm
7=0,0,"$E\OllyDbg",5
....
中的7=0和4=0就是要在运行或调试的时候把project.rap删除了,为什么在删除项目的配置文件呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
2
如果你是用我那个汉化增强版,第一个问题我在汉化说明里就说过了:
4、如果你第一次编译 MASM 的 Dos App,可能会在构建的时候提示找不到 *.obj 文件,其实这时 *.obj 文件已经生成了。简单的方法就是重新启动一下 RadASM,再编译、构建时就正常了。

第二个问题,既然你看了RadASM的帮助文件,你再看看Assembler.ini那一节:
DelCheck is the file to delete before build and the file to check if exist after build. Use 0 to avoid this check.
2007-5-17 22:23
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
第二个问题,既然你看了RadASM的帮助文件,你再看看Assembler.ini那一节:

都怪我粗心
可是如果是:3=0,O,$B\doslnk.exe /NOLOGO $3 ||||| 为什么会说没找到test.obj呢,Radasm在链接以后会把.obj文件给删了?但Radasm的输出窗口显示在第一次正确链接之后又进行了一次编译,第二次链接也应该没问题啊~~

如果你是用我那个汉化增强版,第一个问题我在汉化说明里就说过了:

把Radasm关闭,重新打开以后,再编译构建还是报错,不过exe文件已经生成了
2007-5-19 19:55
0
游客
登录 | 注册 方可回帖
返回
//