D开源小项目讨论

qiezi 2007-04-18
啊哈,BerkeleyDB完全可以用了,多亏了这个测试。。它比较小,有空我把它完全包装了公布出来,目前只包装了Environment和Database。

我强烈建议使用build,太好用了。。
smithfox 2007-04-18
恩,我也支持用build(bud),
Rant思想应该来自于Java的Ant,
他们的共同点应该是跨平台,
副作用一是要安装Ruby或是JRE,另外一个是要学习他们自己的脚本写法。
从大家使用的习惯来看还是各语言用自己的build工具
.Net下面就用NAnt,因为很难保证其它语言的build工具能适应自己语言的特性。
jinheking 2007-04-18
build如何使用?能不能写一份说明告诉大家?
我支持build
qiezi 2007-04-18
build很简单:
.\main.d
.\make.brf
.\module_foo\module_bar\zoo.d

各文件内容:
// zoo.d:
void zoo()
{
}

// main.d:
void main()
{
  zoo();
}

// make.brf:
main.d

就可以了。

你可以build main.d,也可以build @make。

build配置文件的其它常用参数,可以把每个参数写在一行:
-cleanup     编译后清理掉.o文件
-L-lpthread  linux下链接libpthread.so
-LIBPATH=c:\db  设置库链接路径
libdb45.lib  直接链接windows下使用的lib文件
-op          .o文件输出到源文件所在路径
-odobjs      把.o文件输出到objs文件夹
-T../bin/test 编译的可执行文件输出路径


一个简单的brf文件:
-cleanup
-op
-L-ldb
-LIBPATH=/home/lijie/dm/lib:/home/lijie/dmd/lib:/usr/local/BerkeleyDB.4.5/lib
src/test.d
-T../bin/test

LIBPATH后面多个路径的分隔符,在windows下是分号
jinheking 2007-04-18
谢谢!
qiezi 2007-04-18
dxpcom里面有个build.sh,原来内容是:
dmd test.d -L"-L../xulrunner" -L"-lxpcom" -L"-lxul" -L"-lmozjs" \
    mozilla/xpcom/nsIComponentManager.d \
    mozilla/xpcom/nsIComponentRegistrar.d \
    mozilla/xpcom/nsIFactory.d \
    mozilla/xpcom/nsISimpleEnumerator.d \
    mozilla/xpcom/nsILocalFile.d \
    mozilla/xpcom/nsIFile.d \
    mozilla/xpcom/nsIModule.d \
    mozilla/xpcom/nsISupports.d \
    mozilla/xpcom/nsDebug.d \
    mozilla/xpcom/nsIServiceManager.d \
    mozilla/xpcom/nsIDirectoryServiceProvider.d \
    mozilla/xpcom/nsIMemory.d \
    mozilla/xpcom/nsIDebug.d \
    mozilla/xpcom/nsITraceRefcnt.d \
    mozilla/xpcom/nsID.d \
    mozilla/xpcom/nsError.d \
    mozilla/xpcom/nsStringAPI.d \
    mozilla/xpcom/nsXPCOM.d \
    mozilla/xpcom/nscore.d \
    mozilla/xpcom/nsrootidl.d \
    mozilla/dxpcom/StringAPI.d \
    mozilla/dxpcom/QueryInterface.d \
    -inline -release
rm *.o -rf

现在只需要:
test.d
-op
-L-lxpcom
-cleanup
sofire 2007-08-05
// zoo.d: 
void zoo() 


 
// main.d: 
void main() 

  zoo(); 

 
// make.brf: 
main.d 

这种写法编译不了。
错误提示: function expected before (), not module zoo of type void
是不是因为模块zoo和函数zoo冲突?
Global site tag (gtag.js) - Google Analytics