主题:刚学DOS,极简单的程序却通不过,大家来帮帮我,谢了
我在C7.00下写了极短的几行代码:
int addint(int x)
{
return x++;
}
并编译成intlib.obj文件后转到VBDOS下输入指令:
link /information /q intlib.obj , , , vbdosqlb.lib得到结果如下
Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.
Definitions File [nul.def]: LINK : warning L4045: name of output file is 'intlib.qlb'
**** PARSE DEFINITIONS FILE ****
**** PASS ONE ****
\lib\intlib.lib(intlib.cpp)
\lib\intlib.lib(intlib.cpp)
**** LIBRARY SEARCH ****
vbdosqlb.lib(..\rt\ulstart.asm)
vbdosqlb.lib(\mrt\common\fixups.ASM)
vbdosqlb.lib(..\rt\rtutil.asm)
vbdosqlb.lib(..\rt\rtmint1.asm)
vbdosqlb.lib(..\rt\ultort.asm)
vbdosqlb.lib(..\crt\crt0stub.asm)
vbdosqlb.lib(..\crt\execve.asm)
vbdosqlb.lib(..\rt\erbcproc.asm)
vbdosqlb.lib(..\rt\ulutil.asm)
vbdosqlb.lib(..\rt\error.asm)
vbdosqlb.lib(..\rt\rtmint3.asm)
vbdosqlb.lib(..\crt\freeheap.asm)
vbdosqlb.lib(..\rt\rtenexit.asm)
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm)
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm) : error L2025: _STKHQQ : symbol defined more than once
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm) : error L2025: __aaltstkovr : symbol defined more than once
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm) : error L2025: __chkstk : symbol defined more than once
**** ASSIGN ADDRESSES ****
1 segment "_TEXT" class "CODE" length 33fH bytes
2 segment "_DATA" class "DATA" length 4aH bytes
3 segment "CONST" class "CONST" length 0H bytes
4 segment "_BSS" class "BSS" length 0H bytes
5 segment "XMSSEG" class "CODE" length ad5H bytes
6 segment "FAR_BSS" class "FAR_BSS" length 0H bytes
7 segment "FAR_DATA" class "FAR_DATA" length 0H bytes
8 segment "NULL" class "BEGDATA" length 42b0H bytes
9 segment "CDATA" class "DATA" length eH bytes
10 segment "XIQC" class "DATA" length 2H bytes
11 segment "XIB" class "DATA" length 0H bytes
12 segment "XI" class "DATA" length 0H bytes
13 segment "XIE" class "DATA" length 0H bytes
14 segment "XPB" class "DATA" length 0H bytes
15 segment "XP" class "DATA" length 0H bytes
16 segment "XPE" class "DATA" length 0H bytes
17 segment "XCB" class "DATA" length 0H bytes
18 segment "XC" class "DATA" length 0H bytes
19 segment "XCE" class "DATA" length 0H bytes
20 segment "XECIB" class "DATA" length 0H bytes
21 segment "XECI" class "DATA" length 0H bytes
22 segment "XECIE" class "DATA" length 0H bytes
23 segment "DBDATA" class "DATA" length eH bytes
24 segment "BC_SAB" class "BC_SEGS" length 0H bytes
25 segment "BC_SA" class "BC_SEGS" length 4H bytes
26 segment "XOB" class "BSS" length 0H bytes
27 segment "XO" class "BSS" length 0H bytes
28 segment "XOE" class "BSS" length 0H bytes
29 segment "NMALLOC" class "BC_VARS" length 2H bytes
30 segment "ENMALLOC" class "BC_VARS" length 2H bytes
31 segment "STACK" class "STACK" length 0H bytes
32 segment "C_ETEXT" class "ENDCODE" length 0H bytes
33 segment "_BSS" class "DATA" length 1eH bytes
**** PASS TWO ****
\lib\intlib.lib(intlib.cpp)
\lib\intlib.lib(intlib.cpp)
vbdosqlb.lib(..\rt\ulstart.asm)
vbdosqlb.lib(\mrt\common\fixups.ASM)
vbdosqlb.lib(..\rt\rtutil.asm)
vbdosqlb.lib(..\rt\rtmint1.asm)
vbdosqlb.lib(..\rt\ultort.asm)
vbdosqlb.lib(..\crt\crt0stub.asm)
vbdosqlb.lib(..\crt\execve.asm)
vbdosqlb.lib(..\rt\erbcproc.asm)
vbdosqlb.lib(..\rt\ulutil.asm)
vbdosqlb.lib(..\rt\error.asm)
vbdosqlb.lib(..\rt\rtmint3.asm)
vbdosqlb.lib(..\crt\freeheap.asm)
vbdosqlb.lib(..\rt\rtenexit.asm)
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm)
**** WRITING DOS EXECUTABLE ****
There were 6 errors detected
谁告诉我怎么回事啊!可能我根本没弄明白BASIC中怎么调用C的过程?[em10]
int addint(int x)
{
return x++;
}
并编译成intlib.obj文件后转到VBDOS下输入指令:
link /information /q intlib.obj , , , vbdosqlb.lib得到结果如下
Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.
Definitions File [nul.def]: LINK : warning L4045: name of output file is 'intlib.qlb'
**** PARSE DEFINITIONS FILE ****
**** PASS ONE ****
\lib\intlib.lib(intlib.cpp)
\lib\intlib.lib(intlib.cpp)
**** LIBRARY SEARCH ****
vbdosqlb.lib(..\rt\ulstart.asm)
vbdosqlb.lib(\mrt\common\fixups.ASM)
vbdosqlb.lib(..\rt\rtutil.asm)
vbdosqlb.lib(..\rt\rtmint1.asm)
vbdosqlb.lib(..\rt\ultort.asm)
vbdosqlb.lib(..\crt\crt0stub.asm)
vbdosqlb.lib(..\crt\execve.asm)
vbdosqlb.lib(..\rt\erbcproc.asm)
vbdosqlb.lib(..\rt\ulutil.asm)
vbdosqlb.lib(..\rt\error.asm)
vbdosqlb.lib(..\rt\rtmint3.asm)
vbdosqlb.lib(..\crt\freeheap.asm)
vbdosqlb.lib(..\rt\rtenexit.asm)
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm)
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm) : error L2025: _STKHQQ : symbol defined more than once
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm) : error L2025: __aaltstkovr : symbol defined more than once
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm) : error L2025: __chkstk : symbol defined more than once
**** ASSIGN ADDRESSES ****
1 segment "_TEXT" class "CODE" length 33fH bytes
2 segment "_DATA" class "DATA" length 4aH bytes
3 segment "CONST" class "CONST" length 0H bytes
4 segment "_BSS" class "BSS" length 0H bytes
5 segment "XMSSEG" class "CODE" length ad5H bytes
6 segment "FAR_BSS" class "FAR_BSS" length 0H bytes
7 segment "FAR_DATA" class "FAR_DATA" length 0H bytes
8 segment "NULL" class "BEGDATA" length 42b0H bytes
9 segment "CDATA" class "DATA" length eH bytes
10 segment "XIQC" class "DATA" length 2H bytes
11 segment "XIB" class "DATA" length 0H bytes
12 segment "XI" class "DATA" length 0H bytes
13 segment "XIE" class "DATA" length 0H bytes
14 segment "XPB" class "DATA" length 0H bytes
15 segment "XP" class "DATA" length 0H bytes
16 segment "XPE" class "DATA" length 0H bytes
17 segment "XCB" class "DATA" length 0H bytes
18 segment "XC" class "DATA" length 0H bytes
19 segment "XCE" class "DATA" length 0H bytes
20 segment "XECIB" class "DATA" length 0H bytes
21 segment "XECI" class "DATA" length 0H bytes
22 segment "XECIE" class "DATA" length 0H bytes
23 segment "DBDATA" class "DATA" length eH bytes
24 segment "BC_SAB" class "BC_SEGS" length 0H bytes
25 segment "BC_SA" class "BC_SEGS" length 4H bytes
26 segment "XOB" class "BSS" length 0H bytes
27 segment "XO" class "BSS" length 0H bytes
28 segment "XOE" class "BSS" length 0H bytes
29 segment "NMALLOC" class "BC_VARS" length 2H bytes
30 segment "ENMALLOC" class "BC_VARS" length 2H bytes
31 segment "STACK" class "STACK" length 0H bytes
32 segment "C_ETEXT" class "ENDCODE" length 0H bytes
33 segment "_BSS" class "DATA" length 1eH bytes
**** PASS TWO ****
\lib\intlib.lib(intlib.cpp)
\lib\intlib.lib(intlib.cpp)
vbdosqlb.lib(..\rt\ulstart.asm)
vbdosqlb.lib(\mrt\common\fixups.ASM)
vbdosqlb.lib(..\rt\rtutil.asm)
vbdosqlb.lib(..\rt\rtmint1.asm)
vbdosqlb.lib(..\rt\ultort.asm)
vbdosqlb.lib(..\crt\crt0stub.asm)
vbdosqlb.lib(..\crt\execve.asm)
vbdosqlb.lib(..\rt\erbcproc.asm)
vbdosqlb.lib(..\rt\ulutil.asm)
vbdosqlb.lib(..\rt\error.asm)
vbdosqlb.lib(..\rt\rtmint3.asm)
vbdosqlb.lib(..\crt\freeheap.asm)
vbdosqlb.lib(..\rt\rtenexit.asm)
e:\dos\C700\LIB\SLIBCE.lib(chkstk.asm)
**** WRITING DOS EXECUTABLE ****
There were 6 errors detected
谁告诉我怎么回事啊!可能我根本没弄明白BASIC中怎么调用C的过程?[em10]