$ make -f makefile.gcc gcc -D_GCC_ -c KomaMoves.cpp gcc -D_GCC_ -c kyokumen.cpp kyokumen.cpp:2293: warning: integer constant is too large for "long" type kyokumen.cpp:2294: warning: integer constant is too large for "long" type kyokumen.cpp:2295: warning: integer constant is too large for "long" type kyokumen.cpp:2296: warning: integer constant is too large for "long" type kyokumen.cpp:2301: warning: integer constant is too large for "long" type kyokumen.cpp:2302: warning: integer constant is too large for "long" type kyokumen.cpp:2307: warning: integer constant is too large for "long" type kyokumen.cpp:2308: warning: integer constant is too large for "long" type gcc -D_GCC_ -c main.cpp gcc -D_GCC_ -c Te.cpp gcc -D_GCC_ -c Joseki.cpp g++ -o shogi KomaMoves.o kyokumen.o main.o Te.o Joseki.o ld: kyokumen.o relocation overflow for relocation entry 0 in section (__TEXT,__textcoal_nt) (displacement too large) ld: kyokumen.o relocation overflow for relocation entry 1 in section (__TEXT,__textcoal_nt) (displacement too large) ld: kyokumen.o relocation overflow for relocation entry 2 in section (__TEXT,__textcoal_nt) (displacement too large) ld: kyokumen.o relocation overflow for relocation entry 7 in section (__TEXT,__textcoal_nt) (displacement too large) ld: kyokumen.o relocation overflow for relocation entry 8 in section (__TEXT,__textcoal_nt) (displacement too large) ld: kyokumen.o relocation overflow for relocation entry 9 in section (__TEXT,__textcoal_nt) (displacement too large) ld: kyokumen.o relocation overflow for relocation entry 1 in section (__TEXT,__StaticInit) (displacement too large) make: *** [shogi] Error 1 ---ここまで---
gcc -D_GCC_ -Wall -Oにしたら↓の結果でした gcc -D_GCC_ -Wall -O -c kyokumen.cpp kyokumen.cpp: In constructor `Kyokumen::Kyokumen(int, KomaInf (*)[9], int*)': kyokumen.cpp:46: warning: too few arguments for format kyokumen.cpp: At global scope: kyokumen.cpp:2293: warning: integer constant is too large for "long" type kyokumen.cpp:2294: warning: integer constant is too large for "long" type kyokumen.cpp:2295: warning: integer constant is too large for "long" type kyokumen.cpp:2296: warning: integer constant is too large for "long" type kyokumen.cpp:2301: warning: integer constant is too large for "long" type kyokumen.cpp:2302: warning: integer constant is too large for "long" type kyokumen.cpp:2307: warning: integer constant is too large for "long" type kyokumen.cpp:2308: warning: integer constant is too large for "long" type kyokumen.cpp: In member function `int Kyokumen::Mate(int, int, Te&)': kyokumen.cpp:2450: warning: suggest parentheses around assignment used as truth value kyokumen.cpp:2448: warning: `int ret' might be used uninitialized in this function gcc -D_GCC_ -Wall -O -c main.cpp main.cpp: In member function `int Sikou::ITDeep(int, KyokumenKomagumi&, int, int, int, int)': main.cpp:232: warning: `int retval' might be used uninitialized in this function main.cpp: In function `int main()': main.cpp:384: warning: char format, different type arg (arg 5) main.cpp:324: warning: unused variable `KomaInf TestBan[9][9]' main.cpp:335: warning: unused variable `int Motigoma[40]' gcc -D_GCC_ -Wall -O -c Te.cpp gcc -D_GCC_ -Wall -O -c Joseki.cpp g++ -o shogi KomaMoves.o kyokumen.o main.o Te.o Joseki.o ld: kyokumen.o relocation overflow for relocation entry 1 in section (__TEXT,__StaticInit) (displacement too large) make: *** [shogi] Error 1
Microsoft Visual C++ 2005 Express Editionでれさぴょんがコンパイルできません。 homepage1.nifty.com/Ike/lesserpyon/ 何が悪いのでしょうか?コンピューター将棋協会への加入を考えています。その基礎プログラムにしたいのですが。助けて下さい。
kyokumen.cpp: At global scope: kyokumen.cpp:2293: warning: integer constant is too large for "long" type この警告は↓の辺りなんですが... uint64 TsumeHash::GI_BIT_TBL[5]={ 0x0000000000000000, 0x0000000010000000, 0x0000000030000000, 0x0000000070000000, 0x00000000f0000000, };
kyokumen.hで #ifdef _GCC_ typedef long long int64; typedef unsigned long long int uint64; #else typedef __int64 int64; typedef unsigned __int64 uint64; #endif です。これで問題ないように見えますが... Darwin(Macのカーネル)特有の問題ではなさそうなのですが、 ↓みたいにサフィックスをつけるとwarning: integer constant is too large for "long" typeは出なくなりました。 uint64 TsumeHash::GI_BIT_TBL[5]={ 0x0000000000000000ULL, 0x0000000010000000ULL, 0x0000000030000000ULL, 0x0000000070000000ULL, 0x00000000f0000000ULL, };
が、他のエラーは残ったまま。 ld: kyokumen.o relocation overflow for relocation entry 1 in section (__TEXT,__StaticInit) (displacement too large) 先は長そうだorz 初心者スレに戻った方がいいのだろうか。