在Turbo C2.0集成开发环境中和命令行状态下用tcc.exe中编译连接出来的可执行文件为什么大小不一样?
我自己写C文件早用VC6了,但是为了跟初学C的学生们讲清楚Editplus配置C的开发环境,今天还是做了一下实验。不料遇见了一些奇怪的问题,在此请教诸位高手:
直接进入TC20的集成开发环境,调出TC20自带的hello.c,编译运行。
得到的两个文件大小如下:
HELLO.OBJ 475字节
HELLO.EXE 9486字节
用cmd命令行自己编译,命令如下:
D:\dossoft\TC20>d:\dossoft\tc20\tcc.exe -Id:\dossoft\tc20\include -Ld:\dossoft\tc20\lib -nd:\ D:\dossoft\TC20\hello.c
得到的两个文件大小如下:
HELLO.OBJ 328字节
HELLO.EXE 6544字节
用editplus调用tcc.exe配置的开发环境,配置如下:
(1)菜单文本:compile
(2)命令:D:\dossoft\TC20\TCC.EXE
(3)参数:-ID:\dossoft\TC20\INCLUDE -LD:\dossoft\TC20\LIB -n$(FileDir)\ $(FilePath)
(4)起始目录:D:\dossoft\TC20
(5)捕获输出:选中此项
(6)运行时自动保存打开的文件:选中此项
得到的两个文件大小如下:
HELLO.OBJ 328字节
HELLO.EXE 6544字节
其实,用editplus配置的开发环境,本质上也是命令行编译。那么:
为什么在集成开发环境中编译连接出来的文件跟命令行状态下得到的文件大小不一致?
最好玩的是,我在命令行状态下执行上述几种方法编译出来的hello.exe,居然不能输出Hello, world
但是,在集成环境下alt+F5可以看到Hello, world,
在editplus配置的环境中能够捕获到输出的Hello, world
为什么会有这种现象?
更让人哭笑不得的是,有时候系统突然变乖了:
在命令行状态下执行上述几种方法编译出来的hello.exe,居然能看到输出结果了。
请各位达人会诊一下:
我的XP系统是不是出毛病了?
还是我的TC20系统的某些文件出毛病了?
这种问题该怎么解决?
谢谢!