提问人:Kien Nguyen 提问时间:9/28/2023 最后编辑:Michael PetchKien Nguyen 更新时间:9/29/2023 访问量:191
Turbo C++ 工具在编译和链接代码时会生成“DPMI 服务器中没有 DOS 扩展”
Turbo C++ tools produce "No DOS extensions in the DPMI server" when compiling and linking code
问:
我正在尝试链接 .cpp 文件和 .asm 文件,这是我的代码:
阶乘1.cpp
#include<iostream.h>;
#include<conio.h>;
int n;
extern int factorial();
void main(){
char tl;
L1:
clrscr();
cout<<"\n n: "; cin>>n;
cout<<"\n n factorial: "<<n<<" is: "<<factorial();
cout<<"\n continue (y/n)?";
tl=getch();
if(tl=='y') goto L1;
}
factorial2.asm
.MODEL large
.DATA
EXTRN _n:word
.CODE
PUBLIC @factorial$qv
@factorial$qv PROC
mov cx,_n
mov ax,1
cmp cx,2
jb L3
L2: mul cx
loop L2
L3: ret
@factorial$qv ENDP
END
然后,我使用以下命令来编译代码:\Compiler\BIN\TCC -ml -I\Compiler\INCLUDE -L\Compiler\LIB factorial1.cpp factorial2.asm
我得到了 .obj 文件,但 dosbox 显示错误:
DPMI 服务器中没有 DOS 扩展
如何修复该错误?
我正在使用 tcc 3.0、tasm 版本 4.1 和 tlink 版本 7.0
编辑 2我尝试了 TLINK 3.01 和 5.0,现在我得到了这个
编辑 3我更改为 cpp 文件和 asm 文件。我现在编译它没有错误。但是当我使用 TLINK 链接 2 obj 文件时,我收到此错误:extern int factorial();
extern "C" int factorial();
@factorial$qv
_factorial
答: 暂无答案
评论