`
h_rain
  • 浏览: 120877 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
文章分类
社区版块
存档分类
最新评论

在cygwin中编译gdc 0.23

阅读更多
一 准备
前面的setup过程参考gdc的安装说明.
/cygdrive/d/gdc/gcc-3.4.5是gdc的源码目录
在cygwin的环境下,要不就修改gdc automake文件的版本,要不就安装1.9.4,需要保持版本一致
拷贝cygwin下的cygiconv-2.dll,cygintl-2.dll,cygintl-8.dll到gcc-3.4.5/gcc目录

二 配置
cd /cygdrive/d/gdc/gcc-3.4.5
configure --prefix=/usr/local/gdc --enable-languages=c,d

三 构建
1 
	make
	到配置phobos出错,不用管,进行下面的安装
2 
	make install
3
	cp /usr/local/gdc/bin/gdc /usr/local/gdc/bin/gdc-3.4.5.exe
4	
	cd /cygdrive/d/gdc/gcc-3.4.5/i686-pc-cygwin/libphobos
	PATH='/usr/local/gdc/bin':$PATH CC=/usr/local/gdc/bin/gdc-3.4.5.exe /bin/sh /cygdrive/d/gdc/gcc-3.4.5/libphobos/configure  --host=i686-pc-cygwin --build=i686-pc-cygwin --enable-multilib --prefix=/usr/local/gdc --enable-languages=c,d --with-gcc-version-trigger=/cygdrive/d/gdc/gcc-3.4.5/gcc/version.c --program-transform-name=s,y,y, --srcdir=../.././libphobos --with-target-subdir=i686-pc-cygwin CPPFLAGS='-O2' build_alias=i686-pc-cygwin host_alias=i686-pc-cygwin  --no-create --no-recursion target_alias=i686-pc-cygwin
5
	make
	make install


自己写的备忘,不是很清晰.
大家拍砖的时候,请帮忙完善:)
分享到:
评论
38 楼 qiezi 2007-04-21  
都加上了,睡了先,白天再整。

xpidl刚才已经改完了,白天测试~
37 楼 oldrev 2007-04-21  
偶的:oldrev@gmail.com,把简单的使用说明放在 wiki 上就行了
36 楼 qiezi 2007-04-21  
现在dxpcom在windows/linux上都可以用了,测试应该还算方便。装上DMD,xulrunner,设置一下PATH就差不多了。
35 楼 qiezi 2007-04-21  
把你们的gmail帐号给我,我加上去。
34 楼 h_rain 2007-04-21  
动作真快~
:)
33 楼 qiezi 2007-04-21  
开了:
http://code.google.com/p/dxpcom/
都来加入亚。白天我把代码整理一下传上来。
32 楼 h_rain 2007-04-21  
是呀,qiezi学长弄点教程,我也省事了。
http://www.xulplanet.com/references/xpcomref/
最近这个看的多一些,但光看参考也不行啊,还得有好点的入门教程。

争取明天配好xpcom+d的环境,试试DXpcomm。
31 楼 oldrev 2007-04-21  
qiezi 同志要不你开个项目,这样的话我们也可以帮你干干体力活啊
30 楼 qiezi 2007-04-21  
要不就后天发0.2版吧,我抽点时间写几个简单教程。文档的确是少,所以我是找头文件,看哪个比较简单就用哪个作例子。调用还比较简单,目前我还不知道如何写组件,如何注册组件呢,主要是这方面要好好看一下。
29 楼 h_rain 2007-04-21  
说来惭愧,开始学D以来,代码倒是看了万把行了,真正写过的却不出200行...

而且我这现在的XULRunner是llmozlib patch后的,不知道有什么兼容性问题。

明天下载一个官方的XULRunner试试吧。

是该开始写D代码了呢:)
28 楼 h_rain 2007-04-21  
:)

其实现在缺的还真是Mozilla的中文文档。
我的鸟语其烂无比...

唉...

目标不在大小,有就比没有强,可以说成是赶赶进度才出来的呀~
:)
27 楼 qiezi 2007-04-21  
h_rain你可以修改一下dxpcom 0.1里面的nsISupports.d,然后就可以使用了,有时间帮助测试一下调用XPCOM和编写XPCOM组件,目前这样修改以后应该是已经可以支持这2项功能了。
26 楼 qiezi 2007-04-21  
0.3版这个目标太小了点,只要虚表兼容,现在应该已经可以做这个了。
25 楼 qiezi 2007-04-21  
可以解决就不用他现身咯,等做到0.4版了就发到新闻组里去。

0.4版的目标是:
1、C++风格的XPCOM调用  0.1版已经实现
2、异常风格的XPCOM调用   0.2版即将实现
3、D语言编写C++接口风格的XPCOM组件 0.3
4、D语言编写异常接口风格的XPCOM组件
24 楼 h_rain 2007-04-21  
我也没太看明白代码,尤其是在几个小时内看这么多。
不过可以推测:类,接口,COM接口这3种含有虚表的东东,只有COM接口是没有ClassInfo的,干净的,而其他两个东东的虚表首项是ClassInfo(运行时信息?),所以前面测试时,并没有“弄”出真正的COM接口,仅仅是符合了stdcall调用约定,虚表的0项就被D默认为ClassInfo指针而被跳过了。

现在看,Windows的COM模型中,应该是也没有占位符了。

这样简直太方便了,就等你的IDL编译器出来了,DMD是没有问题了。

qiezi学长加油啊~
23 楼 qiezi 2007-04-21  
它的确是没判断的,算是留了个后门吧,有趣的说。。可以省点事了,0.3版也可以加快了,不过还是要修改IDL生成器,非常烦燥。刚看了一下ridl,太老了,无法在新的ruby上使用,放弃了。打算用一星期去做0.3吧,应该是够了。
22 楼 h_rain 2007-04-21  
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

原来如此,别名居然也可以!!!!!!

暴强的DMD。

qiezi学长夸的我都不好意思了,就是看了看代码,连跟踪都没用呢,代码是不会骗人滴...

21 楼 qiezi 2007-04-21  
还是没看懂,你明白了讲解一下。。大概COM里面也是没偏移的,如果不是IUnknown就会加上偏移。

我正在修改D包装类生成器的一些小问题,明天发布0.2应该是没问题了,有些协议方面的东西我比较烦,直接在文件里写个GPL License,不加内容?
20 楼 qiezi 2007-04-21  
用了个alias,其它文件不用修改了。。。测试了一下是可以用滴
19 楼 qiezi 2007-04-21  
好像是可以滴亚,你中大奖了。。

我改成这样了:

extern(Windows)
interface IUnknown {
  nsresult QueryInterface(nsIID * uuid, void * *result);

  nsrefcnt AddRef();

  nsrefcnt Release();
}

alias IUnknown nsISupports;

我汗。你真是个天才。DMD被你给黑了。。。

相关推荐

Global site tag (gtag.js) - Google Analytics