CnPack Forum


 
Subject: 直接用CVS取出的CnWizards源代码,用自带的WantUI无法通过编译.
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-9 08:21  Profile | Blog | P.M. 
直接用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)



Image Attachment: [CnWizRes.dll 无法通过编译] ScreenShot00002.jpg (2008-11-9 08:22, 104.84 K)



Image Attachment: [CnConfigIO.exe 无法通过编译] ScreenShot00003.jpg (2008-11-9 08:23, 105.11 K)



Image Attachment: [CnIdeBRTool.exe 无法通过编译] ScreenShot00004.jpg (2008-11-9 08:24, 102.05 K)



Image Attachment: [CnConfigIO.exe 直接Dcc32却可以通过编译] ScreenShot00006.jpg (2008-11-9 08:25, 55.2 K)

Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-9 14:21  Profile | Blog | P.M. 
这些工具的工程都必须用D5编译,本身就不是D7的工程。
只有不同IDE的专家包才是用各自IDE对应版本的dcc32编译,其余独立运行的工具都是用D5的。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-9 14:23  Profile | Blog | P.M. 
重复发的贴我删掉了。
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-9 21:41  Profile | Blog | P.M. 
哦,原来是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 编辑 ]
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-9 22:15  Profile | Blog | P.M. 
CnWizRes.dpr和CnWizResGen.dpr,负责将Icons目录下的所有东西打包编译成资源DLL。
关于在“关于”窗口中的版本信息,want编译时我们加了对Version.inc等文件的处理,里头会自动生成最新的版本号。这都是在want脚本中写好的自动控制版本信息的方法。正因为want能自动控制,因此我们CnWizConsts.pas里头的内容也无需改动。

至于DLL文件本身的version信息,我们没改,确实还是0.8.8。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-9 22:18  Profile | Blog | P.M. 
D7编译的限制估计是dcc32不兼容D5的工程配置文件引起的,和want应该没关系。这些工具我们也没针对D7做处理,也可能会有不兼容的情况吧。如果要自己用D7编译,可根据CVS中的D5工程重新生成D7的工程(更新cfg和dof文件)。而CVS中原本就有D5的工程我们是不适合将其改成D7的。
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-9 23:18  Profile | Blog | P.M. 
我指的是文件的version不会自动更新,用dcc32编译时,应该怎么做.

问题应该不是dcc32不兼容D5的工程配置文件引起的,很容易验证,因为直接从CVS中导出的工程文件,不做任何修改,直接用dcc32是可以通过编译. 而且我前面所说的也不是和dcc32不兼容,刚好相反,和dcc32很兼容,而是和用wantui编译不兼容,问题应该出是wantui的配置上.
而且修改CVS中的D5工程也没有必要,也无济于事,也不建议那么做无用功. 而是建议应该修改wantu的配置,使之兼容各版本编译.那个'' is not a valid floating point value 很刺眼,貌似是wantui传递给dcc32的参数错误引起的.
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-9 23:43  Profile | Blog | P.M. 
最终可执行文件的version信息来源与res中的定义,dcc32没法自动处理res内容,需要用brcc来根据rc来生成res再调dcc来编译链接,比单纯调用dcc复杂。

D7的dcc32如果直接编译工程能通过那估计就是want配置文件的问题了,具体我们也没试过,可以用系统监视软件看看dcc32的完整命令行。

另外要提示的是,这些工具只在D5下测试过,即使D7能顺利编译过去,也不能保证功能正常。
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-9 23:58  Profile | Blog | P.M. 
我就是不会使用wantui,不然我直接就调用want.exe来编译了... 所以只好退而求其次用dcc32或brcc32或make
可以用系统监视软件看看dcc32的完整命令行。>>请教刘大,应该用什么软件来监视?

D5下测试过的应该在D7下编译的也没问题的吧
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2008-11-10 08:46  Profile | Site | Blog | P.M. 
wantui 只是对 want 的简单封装

wantui 内部还是调用 want 命令行来执行编译的。
所以如果 wantui 编译出错的话,直接用 want 编译应该也会有错。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2008-11-10 08:55  Profile | Site | Blog | P.M. 
查到原因了

在 CnWizards 的 want.xml 里头,附加工具的工程编译项中使用了 versions="5" 这个配置,如果计算机上没有安装 Delphi 5 时,want 编译时就会报这个错,只是这个错误信息有误导之嫌。如果没有安装 Delphi 5,可以改成 version="7",就能正确 want 了。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-10 09:27  Profile | Blog | P.M. 
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 编辑 ]
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-10 17:33  Profile | Blog | P.M. 
wantUI是beta写的,没源码在我们这儿,目前也没开源,没法改。
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-10 21:03  Profile | Blog | P.M. 
哦这样啊,反正我不用wantui,我只想用want直接编译,应该如何version=7呢?
可以用系统监视软件看看dcc32的完整命令行。 >>请教刘大,我很想知道用什么软件来监视,我想得到wantui调用的want+参数,然后越过wantui直接调用want.exe

[ 本帖最后由 dejoy 于 2008-11-10 21:21 编辑 ]
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-10 23:58  Profile | Blog | P.M. 
原来在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)



Image Attachment: [CnWizards_D7.dll可以直接编译通过] ScreenShot00002.jpg (2008-11-10 23:59, 76.18 K)



Image Attachment: [直接编译CnAscii无法通过] ScreenShot00003.jpg (2008-11-11 00:01, 57.3 K)



Image Attachment: [want编译CnAscii时加-Dversion=7或-Dversion="7"也无法通过] ScreenShot00004.jpg (2008-11-11 00:02, 124.04 K)

Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-11 00:26  Profile | Blog | P.M. 
我不会用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)

Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2008-11-11 08:37  Profile | Site | Blog | P.M. 
呵呵,自己动手,丰衣足食:)





Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-11-11 09:13  Profile | Blog | P.M. 
鼓励一把。
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-11 12:11  Profile | Blog | P.M. 
呵呵  虽然自已动手修改能解决,但由于对want知之甚少,方法上也不知是否是最有效的.并且由于这是CVS,需要随时更新的,还是希望由官方修改固化,而我client尽量不修改cvs出来的官方配置.
Top
dejoy
灌水科科长
Rank: 3Rank: 3



UID 39841
Digest Posts 1
Credits 150
Posts 58
点点分 150
Reading Access 10
Registered 2008-4-23
Status Offline
Post at 2008-11-11 22:14  Profile | Blog | P.M. 
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 编辑 ]
Top
 




All times are GMT++8, the time now is 2024-3-29 19:23

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.010817 second(s), 8 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP