64bit compile
Moderators: hgm, Rebel, chrisw
-
- Posts: 2570
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: 64bit compile
I think you should try g++ -std=c++11 -msee4.1
But it crashed on me all the time anyway.
If you don't want to bother with Makefile, try creating a single cpp file, where you #include all the other cpp files. That way you can compile using a one-liner directly from terminal.
But it crashed on me all the time anyway.
If you don't want to bother with Makefile, try creating a single cpp file, where you #include all the other cpp files. That way you can compile using a one-liner directly from terminal.
-
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
Re: 64bit compile
I compile with Intel, "no intrinsic, only emulation"
Change std :: max to MAX (..), ect.
x32 works well,
x64, occasionally breaks, much.
In debug this line first:
Line 309 in Search.cpp
hope you helps.
http://www.mediafire.com/download/9qcqa ... c/Vajol.7z
Change std :: max to MAX (..), ect.
x32 works well,
x64, occasionally breaks, much.
In debug this line first:
Line 309 in Search.cpp
Code: Select all
}
else{
Move tm;
//tm.packed=0;
refinedValue=board.eval<false>();//<-----------------------------CRAHS
eval=refinedValue;
board.transTT.save(posKey,0,0,transTable::TTempty,tm,ply,eval,tm);
//evalCount++;
}
http://www.mediafire.com/download/9qcqa ... c/Vajol.7z
-
- Posts: 855
- Joined: Sun May 23, 2010 1:32 pm
Re: 64bit compile
thank you joseph, I'll try to investigate the problem.
I'll look into this problem.
but I think I need to delay my project until I set up a 64 bit computer on my home
I'll look into this problem.
but I think I need to delay my project until I set up a 64 bit computer on my home
Re: 64bit compile
add:phenri wrote:Code: Select all
gcc vajolet.cpp -o vajolet.exe In file included from movegen.h:23:0, from vajolet.cpp:34: search.h: In constructor 'Search::Search()': search.h:84:37: error: 'log' was not declared in this scope search.h:86:69: error: 'floor' was not declared in this scope
#include <math.h>
to vajolet.cpp (at the top of the file)
Also, use:
g++ vajolet.cpp -lm -o vajolet.txt
-
- Posts: 284
- Joined: Tue Aug 13, 2013 9:44 am
Re: 64bit compile
Code: Select all
$ g++ vajolet.cpp -lm -o vajolet.txt
In file included from vajolet.cpp:30:0:
board.h:331:13: error: default template arguments may not be used in function templates without -std=c++0x or -std=gnu++0x
$ g++ vajolet.cpp -lm -o vajolet.txt -std=c++0x
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0xf): undefined reference to `checkCpuCapabilities()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x14): undefined reference to `comInit()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x1b): undefined reference to `Board::KEY'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x20): undefined reference to `HashKeys::init()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x25): undefined reference to `dataInit()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x2c): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x31): undefined reference to `Board::initPST()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x38): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x3d): undefined reference to `Board::init()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x4c): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x60): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x74): undefined reference to `command()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0xe8): undefined reference to `Movegen::genAll()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x10e): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x113): undefined reference to `Board::makeMove(Move)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x12c): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x131): undefined reference to `Board::unmakeMove()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x143): undefined reference to `Movegen::getNext(Move&)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x1ec): undefined reference to `Movegen::genAll()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x212): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x217): undefined reference to `Board::makeMove(Move)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x230): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x235): undefined reference to `Board::unmakeMove()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x247): undefined reference to `Movegen::getNext(Move&)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x2f5): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x2fa): undefined reference to `Board::makeMove(Move)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x301): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x336): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x33b): undefined reference to `Board::unmakeMove()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x355): undefined reference to `Move::display(bool)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x3a8): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x3ad): undefined reference to `Board::unmakeMove()'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text+0x3bf): undefined reference to `Movegen::getNext(Move&)'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x29): undefined reference to `Search::Reductions'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x3d): undefined reference to `Search::Reductions'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x7b): undefined reference to `PVredQ'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0xa2): undefined reference to `PVredM'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0xb0): undefined reference to `nonPVRedQ'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0xd7): undefined reference to `nonPVRedM'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x13c): undefined reference to `Search::Reductions'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x193): undefined reference to `Search::Reductions'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search17clearHistoryTableEv[Search::clearHistoryTable()]+0x24): undefined reference to `Search::historyTable'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN6Search17clearHistoryTableEv[Search::clearHistoryTable()]+0x3d): undefined reference to `Search::historyTable'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x6a): undefined reference to `Movegen::nextPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x73): undefined reference to `Movegen::captureMovesPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x7d): undefined reference to `Movegen::nextPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x86): undefined reference to `Movegen::quietMovesPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x91): undefined reference to `Movegen::nextPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x97): undefined reference to `Movegen::nextPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0xe9): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x11c): undefined reference to `Search::killermoves'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x14c): undefined reference to `Search::killermoves'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x16c): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x182): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x19b): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x1a2): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x1b8): undefined reference to `board'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x1d8): undefined reference to `Search::refutationMoves'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenD1Ev[Movegen::~Movegen()]+0x4): undefined reference to `Movegen::nextPool'
c:\Temp\ccUNzNJ6.o:vajolet.cpp:(.text$_ZN7MovegenD1Ev[Movegen::~Movegen()]+0xa): undefined reference to `Movegen::nextPool'
collect2: ld returned 1 exit status
Re: 64bit compile
Ah yes sorry you also need -std=gnu++0x.phenri wrote:Code: Select all
$ g++ vajolet.cpp -lm -o vajolet.txt In file included from vajolet.cpp:30:0: board.h:331:13: error: default template arguments may not be used in function templates without -std=c++0x or -std=gnu++0x
So:
g++ -O3 -std=gnu++0x *.cpp -lm -o vajolet.exe
Or use the makefile I created: http://vps001.vanheusden.com/~folkert/vajolet/Makefile
Then it is only a matter of "make". I've not tested a full build because it "command.cpp" uses all kinds of windows-stuff which won't compile on linux of course.
-
- Posts: 284
- Joined: Tue Aug 13, 2013 9:44 am
Re: 64bit compile
Code: Select all
$ g++ -O3 -std=gnu++0x *.cpp -lm -o vajolet.exe
In file included from bitops.cpp:20:0:
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/smmintrin.h:32:3: error: #error "SSE4.1 instruction set not enabled"
Code: Select all
$ make
g++ -O3 -Wall -std=c++11 -fomit-frame-pointer -c -o bitops.o bitops.cpp
cc1plus.exe: error: unrecognized command line option '-std=c++11'
make: *** [bitops.o] Error 1
Code: Select all
$ make
g++ -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o bitops.o bitops.cpp
In file included from bitops.cpp:20:0:
c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/smmintrin.h:32:3: error: #error "SSE4.1 instruction set not enabled"
make: *** [bitops.o] Error 1
Re: 64bit compile
Add:phenri wrote:make with -std=c++0xCode: Select all
$ make g++ -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o bitops.o bitops.cpp In file included from bitops.cpp:20:0: c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/smmintrin.h:32:3: error: #error "SSE4.1 instruction set not enabled" make: *** [bitops.o] Error 1
-msse4.1
to the CFLAGS definition in the Makefile.
-
- Posts: 284
- Joined: Tue Aug 13, 2013 9:44 am
Re: 64bit compile
Nice
Edit: I am following this http://mingw.5.n7.nabble.com/missing-li ... 30933.html
Code: Select all
$ make
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o bitops.o bitops.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o board.o board.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o data.o data.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o eval.o eval.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o hash.o hash.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o move.o move.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o movegen.o movegen.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o search.o search.cpp
search.cpp: In member function 'Move Search::think(bool)':
search.cpp:1315:16: warning: unused variable 'TTentry' [-Wunused-variable]
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o see.o see.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o timer.o timer.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o transposition.o transposition.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o vajolet.o vajolet.cpp
g++ -msse4.1 -O3 -Wall -std=c++0x -fomit-frame-pointer -c -o command.o command.cpp
g++ bitops.o board.o data.o eval.o hash.o move.o movegen.o search.o see.o timer.o transposition.o vajolet.o command.o -lm -o vajolet.exe
Code: Select all
---------------------------
vajolet.exe - System Error
---------------------------
Unable to start the program because it lacks libgcc_s_dw2 -1.dll on your computer. Try reinstalling the program to fix this problem.
---------------------------
OK
---------------------------
-
- Posts: 284
- Joined: Tue Aug 13, 2013 9:44 am
Re: 64bit compile
The file is already there C:\MinGW\bin\libgcc_s_dw2-1.dll
Ok its works
Ok its works
Code: Select all
uci
id name Vajolet 2.23
id author Marco Belli
option name Hash type spin default 1 min 1 max 512
option name MultiPv type spin default 1 min 1 max 200
uciok