社区
C++ Builder
帖子详情
C++ Builder 也太牛了!
angelior
2003-04-28 01:14:52
我有一程序,全部編譯一次居然要五個小時
并且我把所有的文件COPY到一個新是目錄下后,他說不開工了,給你一個LINK ERROR ,然后就等睡好的我找呀找的!
沒法找到這提一問。
...全文
167
69
打赏
收藏
C++ Builder 也太牛了!
我有一程序,全部編譯一次居然要五個小時 并且我把所有的文件COPY到一個新是目錄下后,他說不開工了,給你一個LINK ERROR ,然后就等睡好的我找呀找的! 沒法找到這提一問。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
69 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
IT-司马青衫
2003-04-29
打赏
举报
回复
假如不用BCB 的话,平时上网,听歌,游戏等等不会慢的话.还是软件的问题...
看样子你才到这家公司,老板也是个BCB牛人,或许也来这里.你注意下看看是不是会来这里
记住他的ID 然后悄悄地告诉我...
IT-司马青衫
2003-04-29
打赏
举报
回复
怀疑中了毒,
把硬盘连接到安全的电脑上,查毒
IT-司马青衫
2003-04-29
打赏
举报
回复
关闭防火墙
TR@SOE
2003-04-29
打赏
举报
回复
zhouzhouzhou,你到现在还是没有回答大家的问题就知道在那里COMPLAIN。
我觉得无论怎么优化代码,5个小时的问题就绝对不是软件的问题,而是硬件的问题了。
我的建议如下:
一、检查一下编译器的设置,看看BCB把编译时产生的临时代码(缺省是*.csm)放到哪个目录去了;
二、检查这个目录所在的硬盘空间是否足够;
三、如果磁盘空间不是问题,那么建议用NORTON DISK DOCTOR检查磁盘是否有物理损坏。
我怀疑是C盘空间不够,同时又有物理损坏,所以造成文件产生速度奇慢无比,倒不是编译速度搞的鬼。
angelior
2003-04-29
打赏
举报
回复
編譯的warning就有上百個!
Spring414
2003-04-29
打赏
举报
回复
无论如何也不会这么慢的啊。你的电脑又怎么地好:2G的CPU,雙256M內存。
你的系统你有多少个cpp哦?
angelior
2003-04-29
打赏
举报
回复
我才几天前作的系統!
并且是DOS下的分區格式化!
系統我自己裝的!
我還怕硬件人員給我亂裝!
DaMimit
2003-04-29
打赏
举报
回复
我的程序3.6M 看心情好了。用新装的系统编译 2分钟。用老系统,用了1年的win2k 编译8分钟以上
angelior
2003-04-28
打赏
举报
回复
我到現在的程序的流程還不知!
就是客戶說改什就小小的改動!
要動到大的,我還得請他本人!
IT-司马青衫
2003-04-28
打赏
举报
回复
以下是我们简单地测试的数据,关于硬件对BCB6的编译能力提高情况!
BCB6比BCB5要求高一些.并且使用了优化速度的技术,
以下是两台机器的配置
CPU 塞扬4-1.7G 128kb 100MHZ 奔4 2.66G 512KB 133MHZ
内存 DDR266 256MB DDR333 256MB
硬盘 5400/2M 7200/2M
主板 845GL 845D
系统 WIN2000 WIN2000
可用内存 99.8MB 97.4MB
2,7809.5行/秒 7,5352.8行/秒
kataboy
2003-04-28
打赏
举报
回复
樓主,我真的不明的,你的代碼怎麽寫成這樣的,你想想一個一百萬行的程序。沒有動態連接庫,這太不好了。最少的是重用性太差了,以後陞級就會很蔴煩。除非你重寫。
我對BCB的環境不太了解,不過我還是建議你將一些代碼做成動態連接庫。這是一個好的方法。
我想除了這個方法沒有別的方法了。除非像你所說的打電話給Bland公司。
最後祝你好運!
Maxkong
2003-04-28
打赏
举报
回复
很好,很好。看了这个帖,我的问题就不用问了。嘿嘿!
烟波三千里人鬼五百年
2003-04-28
打赏
举报
回复
嘿嘿,大白鲨真是不厌其烦啊...:)
jishiping
2003-04-28
打赏
举报
回复
编译一个程序要5小时?楼主也真是太牛了。源代码有几个cpp,每个cpp有多大(说一下最大
的cpp有多大也行)?我的程序写了几年了,我想我的程序绝对比你的程序大,全部编译一遍
也就几分钟吧(我的机器没有你的牛,CPU为1.8G,内存以前256MB,最近加了256MB)。
IT-司马青衫
2003-04-28
打赏
举报
回复
假如:我去你那里,能给我多少MONEY?? 会不会扣个人所得税,能包吃包住吗?
IT-司马青衫
2003-04-28
打赏
举报
回复
因为你要学很多
比如说: ASM ;C ;C++ ;C++STL; Windows SDK ; Windows API; ObjectPascal; COM ;COM+
所以它就会慢啊
它教你学会耐心
.___J%%%%%%%%l_.
____%%%%%%%%%%%%~~%%%%%%.
'~l%%%%%%%%%%%%. %%%%%%%%
~~~~~l%%%%%%' %%%%%%F~
______. l%%%%l l%%%%%%
~~%%%%%%%%%%F~ _J%%%%F~
~l%%%%%%%% %%%%%%'
.%%%%%%%%%%%%%%%%
.%%%%%%F~~~_J%%%%l
__%%%%%%' ~l%%%%%%%%'
~l%%%%%%' %%%%%%F~
__~l%%%%' ._J%%%%__
ll %%%%%%' ._J%%%%~l%%%%l_
.%%%% '%%. .%%%%%%%%%%%%F~\_J%%%%%%
_J%%%% %%%% '%%%%%%%%%%l '~l%%~~~~
.%%%%%% l%%l '%%%%~~~l%%.
l%%%%l '%%l_ '~~ %%%%l_
%%%%' ~l%%%%__ _J%%%%l_.
~lF~ ~l%%%%%%%%%%%%%%%%%%%%%%
~~%%%%%%%%%%%%%%%%%%~~
~~~~~~~~~~'
IT-司马青衫
2003-04-28
打赏
举报
回复
你的代码不要一个form包含很多其他form的头文件,优化一下代码,把多数form用到的变量放到一个公用类中,会快很多
//==================================
1、第一次编译工程一般都比较慢。
2、硬件尽量好一点,机器配置。
3、掌握些编译时的小技巧也可以节省时间。比如去掉一些不用带的VCL和类库等。
去掉:
Project-options-packages-Build with runtime packages
----------------Linker-use dynamic RTL
4、尽量在做完修改以后保存,先使用ALT+F9进行编译,只对修改过的部分做编译,不要直接Build ALL,那样会很慢。
//=====================================================
(1)project option->Advances compiller->instruct set-> Pentium
对于每一个project
project option->compiller->File name 重新给个文件名 如:project1.csm
(2)Tools->Enviroment option->Compiling->只选择Show compiler progress和cache header on startup
(3)Tools->Editer options->display把create backup file 勾去掉
//===============================================
#define INC_VCLDB_HEADERS
#define INC_VCLEXT_HEADERS
#include<bcl.h>
#pragma hdrstop
//=======================================================
提高c++builder的编译速度
1
#include <vcl.h>
#pragma hdrstop //指令通知编译器停止产生预编译映象。
//所以就要确保插入到hdrstop pragma之前,每个单元的顺序要相同
#include <stdio.h>
#include <string.h>
#include <iostream.h>
#include <windows.h>
#include "Unit1.h"
#pragma hdrstop
2 Project->Options->Compiler->Pre-compiled headers 选定Cache pre-compiled
3 Project->Options->Pascal->Code generation-> 不选定 Optimization
4 Project->Options->Advanced Compiler->Floating Point 不选定 Fast
5 project option->Advances compiller->instruct set-> Pentium
6 Tools->Envirmonent Options-> Preferences->不选定 Backgroun compilation
7 Tools->Envirmonent Options-> Preferences->选定 CacheHeaders on startup
8 Tools->Editer options->display 不选定 create backup file
9 对于每一个project project option->compiller->File name 重新给个文件名 如:project1.csm
10 采用 win2000Professional
11 扩充到256MB
//=============================================================================================
1.预编译头文件
预编译头文件代表Project Options对话框的Compiler标签页上的一组编译器选项。当选定Use Precompiled Headers或Cache Precompiled Headers选项的时候,编译器将各个单元包括的头文件作为一个已编译的二进制映象文件存储在磁盘文件中(缺省时为C++Builder目录下的vcl50.csm,注:这里已BCB5为例子BCB6大同小异)。在另一个单元里的同一个头文件序列的后续使用可以显著地加快编译速度,这是因为使用已经编译过的头文件。选定Cache PreCompiled Headers可以使编译器将已编译的头文件加载进内存,可以进一步提高速度。单元中的#pragma hdrstop指令使得编译器在此停止生成预编译头文件。注意在每个单元中的#pragma hdrstop指令之前的头文件的顺序非常重要。改变两个独立的单元中头文件的顺序会改变每个单元中由这些由这些头文件生成的代码。因此,这就要求这两个头文件列表被独立地编译和存储为不同的预编译的头文件组。
在#pragma hdrstop指令之后的头文件在每次单元被编译时处理。通常,如果头文件至少被两个单元共同包括,你就应该在指令前包括这个头文件,这样,他们只被编译一次。每个单元特有的头文件应该放在这个指令之后。
2.加快编译速度的其他技术
使用Make而不是Build.但选择Make时,编译器会尝试检测他们最近一次被编译之后哪个源文件已经被修改了,然后只编译这些被修改的文件。另一方面,Build会重新编译工程中所有的源文件。明显地Build将花去比Make更多的时间,不过,有时候Build是必需的!在改变工程选项,以及从另一版本控制系统得到或者更新文件的时候,就必须使用Build。在应用程序发布的时候,必须使用Build。
如果你在应用程序中不使用浮点数计算,在Advanced Compiler叶框中将Floating Point组选定为None可以略微加快连接速度。
不要使用后台编译,因为后台编译在单独的线程中执行。线程的切换,对编辑缓冲区的同步访问,以及与IDE的主线程的同步是造成速度变慢的原因。当执行Make或Build这些必须等待的操作的时候,如果需要试运行的时候,应该禁止后台编译。选择Tools,Environment Options并进入Preferences页框。取消Compiling组中的Background Complilation选项的选定。
//=====================================================
慢的原因:
回复人: zswang(伴水)(现在是专家门诊清洁工) ( ) 信誉:100 2002-4-10 9:07:56
No.1 C语言语法比Pascal要灵活//同等级的Pascal编译器都比C编译器要快
No.2 C++Builder用Pascal写的Vcl//除了要分析C还有分析Pascal
回复人: jishiping(JSP 季世平) ( ) 信誉:100 2002-4-10 9:29:28
1。C语言有很多头文件,以及一些预处理指令,这些都需要花时间处理。
2。编译器本身的问题。据说CB6的编译速度比CB5的编译速度快很多。
回复人: zswang(伴水)(现在是专家门诊清洁工) ( ) 信誉:100 2002-4-10 9:07:56
No.1 C语言语法比Pascal要灵活//同等级的Pascal编译器都比C编译器要快
No.2 C++Builder用Pascal写的Vcl//除了要分析C还有分析Pascal
回复人: jishiping(JSP 季世平) ( ) 信誉:100 2002-4-10 9:29:28
1。C语言有很多头文件,以及一些预处理指令,这些都需要花时间处理。
2。编译器本身的问题。据说CB6的编译速度比CB5的编译速度快很多。
据说下一个版本的BCB将会分为2个版本了,一个继续用VCL,一个用另一个Frame了,据说为了更好的发挥c++的特性,摆脱VCL得束缚,估计这回能快了。
IT-司马青衫
2003-04-28
打赏
举报
回复
其实为了不浪费分的话
最好是先给出1分,然后看问题回复再加分
afei2002
2003-04-28
打赏
举报
回复
实在太牛啦,各位高人~~~学习~~以后也要牛一点,^_^
angelior
2003-04-28
打赏
举报
回复
剩下的問題就是五小時編譯的問題!
不要說給個Borland公司電話給我!
加载更多回复(49)
C++
Builder
6 编程 实例精解 _
C++
_
C++
Builder
6 book and examples
C++
_
Builder
开发人员宝典
C++
教程 希望对大家有用!
JEDI.Visual.Component.Library.v3.38.Full.Source.part2
Delphi5~12,14 /
C++
Builder
5~6,10~12,14 JVCL是由超过500个可视及不可视组件组成的库,可应用到你的Delphi/
C++
Builder
/Kylix工程中。来自JEDI社区大
牛
们的奉献。The JEDI Visual Component Library (JVCL) consists of a large collection (currently ca 500) visual and non-visual components which can be instantly reused in your Delphi, Kylix and
C++
Builder
projects. 安装本组件包前需要安装JCL(JEDI Code Library)
JEDI.Visual.Component.Library.v3.38.Full.Source.part1
Delphi5~12,14 /
C++
Builder
5~6,10~12,14 JVCL是由超过500个可视及不可视组件组成的库,可应用到你的Delphi/
C++
Builder
/Kylix工程中。来自JEDI社区大
牛
们的奉献。The JEDI Visual Component Library (JVCL) consists of a large collection (currently ca 500) visual and non-visual components which can be instantly reused in your Delphi, Kylix and
C++
Builder
projects. 安装本组件包前需要安装JCL(JEDI Code Library) 由于只能上传15M以下的文件,下了这个,还得下载第二部分http://download.csdn.net/source/1807061
downloadWiki_Power
Builder
_
wiki de power
builder
developer
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章