Subject: 直接用CVS取出的CnWizards源代码,用自带的WantUI无法通过编译. [Print This Page]
Author:
dejoy Time: 2008-11-9 08:21 Subject: 直接用CVS取出的CnWizards源代码,用自带的WantUI无法通过编译.
winxp + d7
直接用CVS取出最新的CnPack及CnWizards源代码,用自带的Make目录下的WantUI却无法编译.也不是完全无法编译,CnWizards_D7.dll可以编译,但其它的CnWizRes.dll及
CnDebugViewer.exe
CnDfm6To5.exe
CnIdeBRTool.exe
CnManageWiz.exe
CnSelectLang.exe
AsciiChart.exe
CnConfigIO.exe
等无法编译. 但直接用dcc32命令行却可以编译. 这个问题在很早以前的版本就存在了,并非最新才有.
错误如下:
-prepare:
[echo] version=0.8.9.459_Unstable
cnidebr: Compile CnIdeBRTool.
[copy] to .
[copy] 1 files from .
[brcc] ./Tools/CnIdeBRTool/CnIdeBRTool.rc
[brcc]
[dcc] ./CnIdeBRTool.dpr
[dcc] '' is not a valid floating point value
BUILD FAILED
都貌似相同的错误 "'' is not a valid floating point value ",无wantui源代码,也不清楚是怎么调用,那儿出错,请刘大用非开发机安装D7并导出全新的CVS测试下.
附图.
[ 本帖最后由 dejoy 于 2008-11-9 08:26 编辑 ]
Image Attachment:
[CnWizards_D7.dll 可通过编译]
ScreenShot00001.jpg (2008-11-9 08:21, 136.02 K) / Download count 914
http://bbs.cnpack.org/attachment.php?aid=548
Image Attachment:
[CnWizRes.dll 无法通过编译]
ScreenShot00002.jpg (2008-11-9 08:22, 104.84 K) / Download count 915
http://bbs.cnpack.org/attachment.php?aid=549
Image Attachment:
[CnConfigIO.exe 无法通过编译]
ScreenShot00003.jpg (2008-11-9 08:23, 105.11 K) / Download count 932
http://bbs.cnpack.org/attachment.php?aid=550
Image Attachment:
[CnIdeBRTool.exe 无法通过编译]
ScreenShot00004.jpg (2008-11-9 08:24, 102.05 K) / Download count 903
http://bbs.cnpack.org/attachment.php?aid=551
Image Attachment:
[CnConfigIO.exe 直接Dcc32却可以通过编译]
ScreenShot00006.jpg (2008-11-9 08:25, 55.2 K) / Download count 904
http://bbs.cnpack.org/attachment.php?aid=552
Author:
Passion Time: 2008-11-9 14:21
这些工具的工程都必须用D5编译,本身就不是D7的工程。
只有不同IDE的专家包才是用各自IDE对应版本的dcc32编译,其余独立运行的工具都是用D5的。
Author:
Passion Time: 2008-11-9 14:23
重复发的贴我删掉了。
Author:
dejoy Time: 2008-11-9 21:41
哦,原来是D5工程文件,不过D5工程用D7应该也可以编译啊 而且直接用D7命令行也可通过编译,说明工程文件本身无问题,可能是wantui配置调用上有点小问题? CnDfm6To5 必须用D5编译这个可以理解,其它的应该不有此限制.刘大看看.
另编译生成CnWizRes.dll的工程文件是什么?我找不到啊,无法用wantui编译么我想用dcc32直接编译. 还有用wantui编译出来的CnWizards_D7.dll能包含正确的最新的版本信息,而我用dcc32编译出来的却是老版本信息0.8.8,虽然内容是最新的,不过看着不爽,请教刘大如果要用dcc32编译cvs,么如何同步更新版本信息?
发重复了么 发的时候提示错误页,可能是这个原因产生的~
[ 本帖最后由 dejoy 于 2008-11-9 21:43 编辑 ]
Author:
Passion Time: 2008-11-9 22:15
CnWizRes.dpr和CnWizResGen.dpr,负责将Icons目录下的所有东西打包编译成资源DLL。
关于在“关于”窗口中的版本信息,want编译时我们加了对Version.inc等文件的处理,里头会自动生成最新的版本号。这都是在want脚本中写好的自动控制版本信息的方法。正因为want能自动控制,因此我们CnWizConsts.pas里头的内容也无需改动。
至于DLL文件本身的version信息,我们没改,确实还是0.8.8。
Author:
Passion Time: 2008-11-9 22:18
D7编译的限制估计是dcc32不兼容D5的工程配置文件引起的,和want应该没关系。这些工具我们也没针对D7做处理,也可能会有不兼容的情况吧。如果要自己用D7编译,可根据CVS中的D5工程重新生成D7的工程(更新cfg和dof文件)。而CVS中原本就有D5的工程我们是不适合将其改成D7的。
Author:
dejoy Time: 2008-11-9 23:18
我指的是文件的version不会自动更新,用dcc32编译时,应该怎么做.
问题应该不是dcc32不兼容D5的工程配置文件引起的,很容易验证,因为直接从CVS中导出的工程文件,不做任何修改,直接用dcc32是可以通过编译. 而且我前面所说的也不是和dcc32不兼容,刚好相反,和dcc32很兼容,而是和用wantui编译不兼容,问题应该出是wantui的配置上.
而且修改CVS中的D5工程也没有必要,也无济于事,也不建议那么做无用功. 而是建议应该修改wantu的配置,使之兼容各版本编译.那个'' is not a valid floating point value 很刺眼,貌似是wantui传递给dcc32的参数错误引起的.
Author:
Passion Time: 2008-11-9 23:43
最终可执行文件的version信息来源与res中的定义,dcc32没法自动处理res内容,需要用brcc来根据rc来生成res再调dcc来编译链接,比单纯调用dcc复杂。
D7的dcc32如果直接编译工程能通过那估计就是want配置文件的问题了,具体我们也没试过,可以用系统监视软件看看dcc32的完整命令行。
另外要提示的是,这些工具只在D5下测试过,即使D7能顺利编译过去,也不能保证功能正常。
Author:
dejoy Time: 2008-11-9 23:58
我就是不会使用wantui,不然我直接就调用want.exe来编译了... 所以只好退而求其次用dcc32或brcc32或make
可以用系统监视软件看看dcc32的完整命令行。>>请教刘大,应该用什么软件来监视?
D5下测试过的应该在D7下编译的也没问题的吧
Author:
zjy Time: 2008-11-10 08:46 Subject: wantui 只是对 want 的简单封装
wantui 内部还是调用 want 命令行来执行编译的。
所以如果 wantui 编译出错的话,直接用 want 编译应该也会有错。
Author:
zjy Time: 2008-11-10 08:55 Subject: 查到原因了
在 CnWizards 的 want.xml 里头,附加工具的工程编译项中使用了 versions="5" 这个配置,如果计算机上没有安装 Delphi 5 时,want 编译时就会报这个错,只是这个错误信息有误导之嫌。如果没有安装 Delphi 5,可以改成 version="7",就能正确 want 了。
Author:
dejoy Time: 2008-11-10 09:27
zjy ,你好帅哦!
按你的改成 versions="7"后,果然成功编译通过了!
小建议:在wantui上增加一个combox,列出当前机子中已安装所有Delphi/BCB,对于无版本编译要求的独立exe,可以选择要使用编译的版本,动态生成versions="?". 如果机子中同时安装有多个版本,可以默认指定一个编译版本,比如D5.
就像FastReport的编译安装程序(recompile.exe)那样.
不过FastReport不是动态列出已安装的Delphi/BCB,而是已定义的,不太完善.JCL/JVCL的安装编译程序就是动态列出已安装delphi/bcb了
请教,我想跳过wantui直接调用want.exe命令行来编译,应该如何调用与用wantui一样效果呢?
[ 本帖最后由 dejoy 于 2008-11-10 09:32 编辑 ]
Author:
Passion Time: 2008-11-10 17:33
wantUI是beta写的,没源码在我们这儿,目前也没开源,没法改。
Author:
dejoy Time: 2008-11-10 21:03
哦这样啊,反正我不用wantui,我只想用want直接编译,应该如何version=7呢?
可以用系统监视软件看看dcc32的完整命令行。 >>请教刘大,我很想知道用什么软件来监视,我想得到wantui调用的want+参数,然后越过wantui直接调用want.exe
[ 本帖最后由 dejoy 于 2008-11-10 21:21 编辑 ]
Author:
dejoy Time: 2008-11-10 23:58
原来在DOS窗口中直接输入want就能显示和wantui一样编译效果的参数了.还是有些问题要请教.如何在不用修改CVS的want.xml情况下,直接用version="7"编译呢,难道只能传入release=true这样的?不能传入version=7这样的?楼上的两位admin对want很在行,可以增加传入version=?这样的参数选择编译独立exe时的版本功能么?
[ 本帖最后由 dejoy 于 2008-11-11 00:10 编辑 ]
Image Attachment:
[CW的Want命令帮助]
ScreenShot00001.jpg (2008-11-10 23:59, 199.55 K) / Download count 900
http://bbs.cnpack.org/attachment.php?aid=553
Image Attachment:
[CnWizards_D7.dll可以直接编译通过]
ScreenShot00002.jpg (2008-11-10 23:59, 76.18 K) / Download count 905
http://bbs.cnpack.org/attachment.php?aid=554
Image Attachment:
[直接编译CnAscii无法通过]
ScreenShot00003.jpg (2008-11-11 00:01, 57.3 K) / Download count 962
http://bbs.cnpack.org/attachment.php?aid=555
Image Attachment:
[want编译CnAscii时加-Dversion=7或-Dversion="7"也无法通过]
ScreenShot00004.jpg (2008-11-11 00:02, 124.04 K) / Download count 947
http://bbs.cnpack.org/attachment.php?aid=556
Author:
dejoy Time: 2008-11-11 00:26
我不会用want,不过照葫芦画瓢,want.xml加入 <property name="Compiler.Ver" value="7" if="D7" />
修改cnconfigio
<target name="cnconfigio" depends="-prepare" description="Compile CnConfigIO." >
<property name="Ver.FileDescription" value="CnWizards Configuration Import/Export Tool" />
<property name="Ver.InternalName" value="CnConfigIO" />
<property name="Ver.OriginalFilename" value="CnConfigIO.EXE" />
<copy tofile="${tools}/CnConfigIO/CnConfigIO.res.old" >
<include name="${tools}/CnConfigIO/CnConfigIO.res" />
</copy>
<echo input="${tools}/CnTools.template.rc" file="${tools}/CnConfigIO/CnConfigIO.rc" />
<brcc file="${tools}/CnConfigIO/CnConfigIO.rc" output="${tools}/CnConfigIO/CnConfigIO.res" />
<dcc basedir="${tools}/CnConfigIO" source="CnConfigIO.dpr" versions="${Compiler.Ver}" usecfg="true" />
然后调用want cnconfigio -DD7=true,竟然编译成功了
权当给各位大大抛砖引玉~~
Image Attachment:
[修改的want.xml,动态用D7编译竟然成功了]
ScreenShot00006.jpg (2008-11-11 00:26, 66.27 K) / Download count 903
http://bbs.cnpack.org/attachment.php?aid=557
Author:
zjy Time: 2008-11-11 08:37 Subject: 呵呵,自己动手,丰衣足食:)
Author:
Passion Time: 2008-11-11 09:13
鼓励一把。
Author:
dejoy Time: 2008-11-11 12:11
呵呵 虽然自已动手修改能解决,但由于对want知之甚少,方法上也不知是否是最有效的.并且由于这是CVS,需要随时更新的,还是希望由官方修改固化,而我client尽量不修改cvs出来的官方配置.
Author:
dejoy Time: 2008-11-11 22:14
CnWizards带的want.exe是不是定制编译的特别版啊? 我用从sourceforge.net上下载的want.exe替换cw自带的后结果无法编译了?
结果:
E:\vcl\CnWizards\Make>want
./want.xml (809:119): Unknown element <target><ftp>
BUILD FAILED
还有,使用want编译时,Delphi的路径是可以指定还是必须在path中?
又发现问题了,有些编译如cnidebr,cndebugviewer把xml中version="7"也无法通过编译,是何故?
[ 本帖最后由 dejoy 于 2008-11-11 23:18 编辑 ]
Author:
Passion Time: 2008-11-11 22:27
的确是zjy的修改版。原先的want不支持FTP,现在改成了支持FTP的。
Author:
dejoy Time: 2008-11-12 00:00
原帖由 dejoy 于 2008-11-11 22:14 发表
CnWizards带的want.exe是不是定制编译的特别版啊? 我用从sourceforge.net上下载的want.exe替换cw自带的后结果无法编译了?
结果:
E:\vcl\CnWizards\Make>want
./want.xml (809:119): Unknown element <target& ...
继续请教zjy
Author:
zjy Time: 2008-11-12 08:47 Subject: 很遗憾
定制want一方面是要加入对ftp的支持,另一方面是要加入对BDS和BCB的编译支持。但当时代码没入CVS,有一次硬盘误格式化时丢掉了
Author:
zjy Time: 2008-11-12 08:52 Subject: cnidebr,cndebugviewer 改成 D7 可以编译啊
虽然有几个平台兼容性警告,但在我的机器上可以编译成功,用昨天晚上更新的CVS代码。
Author:
dejoy Time: 2008-11-12 12:12
谢zjy,我CVS后测试下再反馈结果
弄丢了修改版的want源代码,好可惜哦 ~
[ 本帖最后由 dejoy 于 2008-11-12 12:13 编辑 ]
Author:
dejoy Time: 2008-11-13 21:38
我CVS最新的460代码后,如zjy一样,虽然有些hint,不过可以通过编译了.
但还有一个问题,生成exe的同时,总是生成map文件,在不修改cvs出的dpr相关配置的情况下,want时怎么不生成map文件?
Welcome to CnPack Forum (http://bbs.cnpack.org/) |
Powered by Discuz! 5.0.0 |