December 15, 2004

在Mac OS X上用CBX 1.5

Categories:  ItTech

C++BuilderX 1.5 Mobile Edition在Borland的社区可以下载到,需要社区帐号。
虽然只有Windows的安装程序,但是由于软件是Java的,所以其实在其他的CBX支持的平台上也是可以用的。比如Linux。Borland的社区也有一篇文章讲如何在Linux上用CBX 1.5。只要把安装目录拷贝到Linux上,然后用java启动CBuilder。当然,需要把lib目录下所有的jar文件指定到classpath中,启动类是com.borland.cbuilder.CBuilder。
但是我现在常用的平台是Mac OS X。在OSX上,按照这种方法,可以启动CBX 1.5,但是无法编译和调试。因为CBX自带的编译工具集只有Windows/Linux/Solaris三种平台。但是Linux和Solaris上实际编译和调试用的都是作为外部程序调用的gcc和gdb,所以在Mac OS X上应该也是没问题的。

折腾了一下,成了。下面讲一下我的过程:

安装:
按照前面说的,在Windows下安装完再把目录拷贝到Mac OS X上,也是可行的。但是这个下载包带的Windows版的安装程序有问题,在我办公室的机器上会100%CPU占用然后无响应。这个似乎是这个版本InstallAynwhere的一个bug,如果系统安装了JDK 1.4以上会出现。不过我不是很确定,因为我不想只为了作一个中转安装,就把JDK卸载。
其实,InstallAnywhere的安装程序就是Java的,各个平台只是做了一个壳。所以用Java来运行不就好了?我在Linux上安装的方法如下:
先把下载的CBX 1.5的zip包展开到一个目录下。进入子目录Windows,可以看到安装程序install.exe。还有一个install.properties。这个install.exe其实就是一个zip的自展包。在当前目录下用unzip解开它,会生成有两个目录,InstallerData和Windows。InstallerData下就是实际安装程序的JAR文件。在第一层Windows目录下(也就是install.exe和install.properties所在目录),执行
java -classpath InstallerData/Execute.zip:InstallerData/IAClasses.zip install
安装就开始了。之后就和正常安装一样了。安装结束后,把安装目录拷贝到Mac OSX上。在MacOSX上也可以这样安装,但是由于缺省安装平台里不包括Mac OSX,装好后会少一些东西。所以还是从Linux上拷贝比较安全。
拷贝好后,可以在安装目录下生成一个脚本来启动CBX。脚本内容如下:
java -Xms32m -Xmx256m -classpath "所有lib目录下的jar" com.borland.cbuilder.CBuilder
注意:classpath里primetime.jar和cbuilder.jar要在前两个
我的脚本如下:
----------------------------------
#!/bin/sh

CBX_PATH=/opt/CBuilderX1.5

BOOT_CP=$CBX_PATH/lib/lawt.jar:$CBX_PATH/lib/TabbedPaneFix.jar:$CBX_PATH/lib/SequencedEventFix.jar:$CBX_PATH/lib/javac.jar:$CBX_PATH/lib/JarManifestFix.jar:

RUN_CP=""

for i in $CBX_PATH/patch/*.jar
do
RUN_CP=$i:$RUN_CP
done

RUN_CP=$RUN_CP:$CBX_PATH/lib/primetime.jar:$CBX_PATH/lib/cbuilder.jar:$CBX_PATH/lib/ext/QCClient.jar:$CBX_PATH/lib/Axis1.0/axis.jar:$CBX_PATH/lib/Axis1.0/commons-discovery.jar:$CBX_PATH/lib/Axis1.0/commons-logging.jar:$CBX_PATH/lib/Axis1.0/jaxrpc.jar:$CBX_PATH/lib/Axis1.0/log4j-1.2.8.jar:$CBX_PATH/lib/Axis1.0/saaj.jar:$CBX_PATH/lib/Axis1.0/wsdl4j.jar:$CBX_PATH/lib/oldxml/xml4j.jar:$CBX_PATH/lib/oldxml/xmlproxy.jar:$CBX_PATH/lib/ant.jar:$CBX_PATH/lib/bcc.jar:$CBX_PATH/lib/BorlandLookAndFeel.jar:$CBX_PATH/lib/borlandxml.jar:$CBX_PATH/lib/castor-0.9.5.jar:$CBX_PATH/lib/cloudscape.jar:$CBX_PATH/lib/dtdparser.jar:$CBX_PATH/lib/EccpressoAll.jar:$CBX_PATH/lib/flexlm.jar:$CBX_PATH/lib/help.jar:$CBX_PATH/lib/jdom.jar:$CBX_PATH/lib/mail.jar:$CBX_PATH/lib/optional.jar:$CBX_PATH/lib/resolver.jar:$CBX_PATH/lib/saaj.jar:$CBX_PATH/lib/sanct2.jar:$CBX_PATH/lib/sanctuary.jar:$CBX_PATH/lib/xercesImpl.jar:$CBX_PATH/lib/xmlParserAPIs.jar

env CLASSPATH=$BOOT_CP:$CLASSPATH java -Xms32m -Xmx256m -classpath $RUN_CP com.borland.cbuilder.CBuilder

----------------------------------

启动后的CBX,可以建立project,编辑代码等等各种常用功能。但是编译相关的菜单都是灰色的,不能用。下一步就是建立Mac OS X上的toolset,好能进行编译调试。
首先是加上Mac OS X的平台定义:
在platforms子目录下(以后的子目录都相对于CBX安装目录)下,有各个平台的定义文件。我们可以拷贝linux的,名字自己定,我的叫macosx.platform。GIF图标也可以拷贝一份。然后编辑里面的内容,名字什么的都改成对应于Mac OS X。其中的key,我写成macosx,会在toolset定义中用到。

然后修改toolset定义:
我们直接使用现成的gnu的toolset的定义就好了。这样只要加几行就好了。愿意的话也可以拷贝一份改成别的名字,给OSX专用。
toolset的定义在toolsets子目录下。包括一个gnucplus.toolset和一个gnucplus目录。
先改toolset文件,在<platform key="linux"/>后面加一行,key写成macosx(这个就是前面在platform里定义的,一定要一致),<canexecuteonidehostplatform>加一个,mac os x,注意中间的空格,和key不一样,还要全是小写。
然后改gnucplus目录下的定义文件。三个.tool文件,照样子改。每个里面有linux的地方都加一个相同的定义,平台的key写成macosx。此外在compile的那个tool里有定义include的地方。缺省是/usr/include和/usr/include/g++-3。Mac OS X上的C++的头文件位置不一样,在/usr/include/gcc/darwin/3.3/c++下面,需要照样加上。

都改好之后,启动CBX,在project的属性里,选择platform。会发现多了Mac OS X平台和对应的GNU C++ Toolset。选择之后,编译什么的都可以用了。也可以设置成缺省属性,不用每次都改。

OK。到此为止。可惜的是CBX 1.5还是不能让我完全满意,如果那个IDE能把简单的建模功能和语言完美结合就好了。

Posted by kuuldor at December 15, 2004 03:48 PM
Comments

MacOS X 上可以跑 BCB? hoho强啊 。

Posted by: albertlee at April 28, 2005 07:15 PM

BCB恐怕要依靠模拟器才能在Mac OS X中运行吧?

Kuuldor写的是C BuilderX,基于Java的IDE。

Posted by: dumm at April 29, 2005 12:49 AM
Post a comment









Remember personal info?




  
Please enter the code as seen in the image above to post your comment.