[入门] 每次用dmd编译时,都需要把所有需要的lib文件写上吗?

sinpool 2011-05-19
今天下载了gtkD-1.4.1,
并且编译出了di文件和N个lib文件,
准备尝试一下官网上的例子是否可以运行。

写好代码后,
利用dmd编译时,
使用了下面的命令:
dmd test.d DD-atk.lib DD-cairo.lib DD-gdk.lib DD-gdkpixbuf.lib DD-gio.lib DD-glade.lib DD-glib.lib DD-gobject.lib DD-gthread.lib DD-gtk.lib -IE:\dm_soft\dmd2\windows\import\gtkD\lib

如果不把这些lib文件列上去的话,
编译时就会出现“符号未定义”的错误。

因为我也不知道编译时具体使用哪些lib文件,
所以,我就都给写上了。
如果project又要用到其他的库(比如:sqlite)的话,
岂不是又要写很多lib文件。

问题:
在编译时,
必须把用到的lib文件都列出来吗?
能不能根据-I参数指定的目录,
dmd自己就自动使用这个目录里的lib文件呢?

就像dmd2\windows\lib中的lib文件,
也只是在sc.ini中指定了目录,
编译的时候并没有指定具体的lib文件名。
hqs7636 2011-05-19
把windows环境变量path设置一下就好了
betty_betty2008 2011-05-20
试试bud
sinpool 2011-05-20
刚刚试了一下bud,
天哪,
简直太爽了!!!
对于import多个文件,
或需要使用N个lib文件进行编译和link的时候,
那感觉简直就是……
怎么说呢,
突然想起一首诗:

《容斋四笔·得意失意诗》
		南宋·洪迈
	久旱逢甘雨,
	他乡遇故知;
	洞房花烛夜,
	金榜题名时。



不过,
也有一个麻烦。
在使用bud时,
可以通过-I参数指定那些“include”文件的位置,
但是,没有一个参数可以指定所需的lib文件的位置。
所以,
还必须在sc.ini文件里的“LIB”中,
设置所需的lib文件目录。

bud命令本身有一个“-LIBPATH”参数,
但是,
设置这个参数后没有效果,
必须在sc.ini中设置lib文件的目录才行。

如果是我哪里使用不当,
还请各位达人指正。
kakueiken 2011-05-23
自己写BAT,bud。
ilovetopview 2012-02-23
求个bud的下载地址
betty_betty2008 2012-02-23
www.dsource.org/projects/build

记住www.dsource.org/projects/
ilovetopview 2012-02-23
http://trac.dsource.org/projects/build/browser/downloads/bud_win_3.04.exe?format=raw

大家用的是这个地址吗?
ilovetopview 2012-02-23
如何去掉cmd的黑框啊?
betty_betty2008 2012-02-23
ilovetopview 写道
如何去掉cmd的黑框啊?

bud -gui

bud -h 看看
Global site tag (gtag.js) - Google Analytics