Bu proje için clanlib kullanma konusunda biraz acele etmişim. Çünkü görünüşe göre clanlib uygulamalarında basit bir uygulama da aslında bir c++ sınıfından devralıyor. Bu nedenle clanlib'i d ile kullanmak zor gibi gözüküyor.
Bu yüzden başka bir alternatif aramaya başladım ve sdl kütüphanesini kullanmaya karar verdim. Bunun için eski adıyla build (yeni adıyla bud (http://www.dsource.org/projects/build/)) isimli bir araç kullanmak gerekiyormuş. Bildik şekilde
Alıntı:
> make -f Makefile.unix
şeklinde kurmaya çalıştım. Ama bir sürü hata aldım.
Alıntı:
> make -f Makefile.unix
dmd -op -release -inline -ofbuild build.d util/pathex_bn.d util/pathex.d source_bn.d util/str.d build_bn.d util/booltype.d util/fdt_bn.d util/str_bn.d source.d util/fdt.d util/fileex.d util/fileex_bn.d util/linetoken.d util/linetoken_bn.d util/macro.d util/file2.d
build.d(56): Identifier expected following package
build.d(56): ';' expected
build.d(634): identifier expected following '.', not 'macro'
build.d(3348): identifier expected following '.', not 'macro'
source.d(55): Identifier expected following package
source.d(55): ';' expected
source.d(105): Identifier expected following package
source.d(105): ';' expected
source.d(483): identifier expected following '.', not 'macro'
util/macro.d(38): Identifier expected following package
make: *** [build] Error 1
Daha sonra bunların artık macro kelimesinin bir özel kelime haline geldiği için olduğunu öğrendim. Bu macro kelimesi yerine farklı bir kelime kullanınca bu hatalar gitti. Daha sonra posix'le ilgili derleyici yakındı. O hatalar da bir şekilde düzeldi. Şimdi de şu hataları veriyor:
Alıntı:
> make -f Makefile.unix
dmd -op -release -inline -ofbuild build.d util/pathex_bn.d util/pathex.d source_bn.d util/str.d build_bn.d util/booltype.d util/fdt_bn.d util/str_bn.d source.d util/fdt.d util/fileex.d util/fileex_bn.d util/linetoken.d util/linetoken_bn.d util/makro.d util/file2.d
util/linetoken.d(51): Error: cannot implicitly convert expression (",") of type immutable(char)[] to char[]
util/linetoken.d(51): Error: cannot implicitly convert expression ("//") of type immutable(char)[] to char[]
util/linetoken.d(51): Error: cannot implicitly convert expression ("\") of type immutable(char)[] to char[]
util/linetoken.d(71): Error: cannot implicitly convert expression (",") of type immutable(char)[] to dchar[]
util/linetoken.d(71): Error: cannot implicitly convert expression ("//") of type immutable(char)[] to dchar[]
util/linetoken.d(71): Error: cannot implicitly convert expression ("\") of type immutable(char)[] to dchar[]
make: *** [build] Error 1
Hata veren linetoken.d dosyasının ilgili kısımları şu şekilde.
module util.linetoken;
private import util.linetoken_bn;
private {
static import std.ctype;
static import std.string;
static import std.utf;
}
char[][] TokenizeLine(char[] pSource,
char[] pDelim = ",",
char[] pComment = "//",
char[] pEscape = "\\")
{// <-- Derleyicinin tam olarak yakınmaya başladığı 51.satır burası
dchar[][] lTemp;
char[][] lResult;
lTemp= TokenizeLine( std.utf.toUTF32(pSource),
std.utf.toUTF32(pDelim),
std.utf.toUTF32(pComment),
std.utf.toUTF32(pEscape) );
foreach( dchar[] lLine; lTemp )
{
lResult ~= std.utf.toUTF8( lLine );
}
return lResult;
}
Bazıları da bud isimli aracın çok eski olduğunu söylüyorlar. Ben derleyici olarak dmd 2.0 kullandım. Sırf bunu derlemek için de derleyici değişikliğine gitmeyeyim diye düşündüm. Olmazsa artık dmd 1.0 sürümü bir derleyiciyle tekrar deneyeceğim..
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]