找回密码
 立即注册
搜索
查看: 325|回复: 12

问一个关于EXE Size的问题[求助]

[复制链接]

36

主题

273

回帖

403

积分

中级会员

积分
403
发表于 2003-3-5 20:17:35 | 显示全部楼层 |阅读模式
正在做的项目分两个阶段,第一个阶段结束时,Size为1.4M,第二阶段结束时,Size变成了2.4M。

客户现在在追究原因。:(

经过调查发现,第二阶段曾将第一阶段的Source分了目录。原先都在Source目录下,后来变成了一个机能一个目录(文件有将近200个)。最初分好目录后的Size就变成了2.0M。

现在想问问,分目录会对Exe的大小会产生影响吗?分目录有没有好处呢?

在分目录的时候,include该怎么写?
现在的写法是:#include "../../common/doc/***.h"
曾看到一篇文章说,应该指定project的编译搜索路径,然后直接写include什么头文件。写成什么样有点忘了,但是我曾经试过指定搜索路径,编译速度比现在的慢。

请高手指点!

36

主题

273

回帖

403

积分

中级会员

积分
403
 楼主| 发表于 2003-3-5 23:38:33 | 显示全部楼层
能不能告诉我啊,很急得说~

另外:
开发预言: C++
使用编译器:BCB5.0
回复

使用道具 举报

134

主题

1122

回帖

1709

积分

荣誉版主

积分
1709
发表于 2003-3-5 23:54:39 | 显示全部楼层
请详细描述,一般而言静态变量[全局变量]的大小增加会增加EXE的大小。
编译模式也会导致EXE大小的变化。目录变化应该不会,而且你说的编译速度慢也没有道理。
:)
回复

使用道具 举报

36

主题

273

回帖

403

积分

中级会员

积分
403
 楼主| 发表于 2003-3-6 00:07:36 | 显示全部楼层
谢谢版主~~

版主说的有道理,明天就去公司查查编译设置,可能和以前的不一样了。

分目录导致速度慢,是因为以前Group里的人,用#include <...>,后来全改成#include "..."以后就好了很多。

想再请教,#include 的用法有什么讲究吗?好像什么规约上写,不要用#include "../../xx.h"的样子?
回复

使用道具 举报

2

主题

49

回帖

72

积分

注册会员

积分
72
发表于 2003-3-6 06:03:02 | 显示全部楼层
一般,C或C++的标准.h文件用#include <...>,你自己写的.h文件用#include "..."。你可以在project的设置中定义寻找.h文件的路径,这样就不用#include "../../xx.h".
回复

使用道具 举报

36

主题

273

回帖

403

积分

中级会员

积分
403
 楼主| 发表于 2003-3-6 11:03:09 | 显示全部楼层
我对#include的编译理解是
#include "..."
将会在指定路径中直接找起,如果未指定路径,则应该是当前路径。未找到后,到搜索路径查找。
#include <...>
直接从搜索路径找起

而:
1)BCB5中,#include "..."里的路径会自动加入搜索路径,删也删不掉~。搜索路径过多,担心编译速度!
2)如果我的理解是对的,那么当前路径是C:\src\并且已加入搜索路径中,C:\src\common\doc下的文件
引用C:\src\下的头文件时,写#include <...>就可以了?事实是编译通不过~。
回复

使用道具 举报

36

主题

273

回帖

403

积分

中级会员

积分
403
 楼主| 发表于 2003-3-6 11:08:02 | 显示全部楼层
最初由 carechen 发布
[B]请详细描述,一般而言静态变量[全局变量]的大小增加会增加EXE的大小。
编译模式也会导致EXE大小的变化。目录变化应该不会,而且你说的编译速度慢也没有道理。
:) [/B]


第二阶段确实增加了Source,但在第二阶段开始时,就做了分目录处理,那时size就增加了。:(

从1.4(第一阶段)->2.0(分目录处理,只修改了#include)->2.4(第二阶段)

刚才查了一下,编译设置没有改动,但Link设置改了,所有的PE Size的设置都增加了。该回去以后,exe size的大小竟然没有变!

能再帮我分析一下吗?
回复

使用道具 举报

2

主题

49

回帖

72

积分

注册会员

积分
72
发表于 2003-3-6 16:35:34 | 显示全部楼层
那么,按你说的,当前路径是C:\src\并且已加入搜索路径中,C:\src\common\doc下的文件
引用C:\src\下的头文件时,写#include “....h”就应该可以吧。
回复

使用道具 举报

36

主题

273

回帖

403

积分

中级会员

积分
403
 楼主| 发表于 2003-3-6 20:08:13 | 显示全部楼层
自己的问题自己回答:
是编译设置里的PE Size!

我又重新开了一个新工程,PE是最小的,编译出来的Exe就是1.55M。

看来还是BCB5有问题啊~~,考虑使用BCB6中~
回复

使用道具 举报

36

主题

273

回帖

403

积分

中级会员

积分
403
 楼主| 发表于 2003-3-7 10:15:04 | 显示全部楼层
自己的问题,自己再回答。不能冤枉了BCB5啊~

size大的工程文件里动态连接的package少了~。哎~,这才是真正的原因啊~
看来,出问题还是多在自己身上找原因的好~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-21 12:09 , Processed in 0.091654 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表