BlueCannonBall / Orca

A C++ UCI-compliant chess engine.
Mozilla Public License 2.0
4 stars 0 forks source link

can not compile on Linux #1

Open tissatussa opened 1 year ago

tissatussa commented 1 year ago

hi, i did not manage to compile Orca on Xubuntu 22.04 .. i first installed Boost, it took a long time but no errors .. then, running make gave several boost errors, unclear .. so i can not compile .. should i give more info ?

BlueCannonBall commented 1 year ago

Can I see the Boost version and the error messages? It compiles fine on Ubuntu 20.04. The latest version also depends on the Rust compiler for NNUE. You can install that with sudo apt install rust-all

Also if you have not already pull the submodules with: git submodule update --init --recursive

tissatussa commented 1 year ago

Can I see the Boost version

$ cat /usr/include/boost/version.hpp | grep "BOOST_LIB_VERSION"
//  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
#define BOOST_LIB_VERSION "1_82"

..and the error messages?

well, then i should do it again .. OK

..The latest version also depends on the Rust compiler for NNUE. You can install that with sudo apt install rust-all

lately i'm learning more about Rust, to compile different sources .. it seems i can set which version i want to use (=default) .. some sources are only for Nightly .. what do you mean by 'the Rust compiler for NNUE' ? Can i provide all my installed Rust modules (rustc and more) by a list command ?

Also if you have not already pull the submodules with: git submodule update --init --recursive

almost always i use git clone [....git] --recursive , i guess it's the same ?

BlueCannonBall commented 1 year ago

By "Rust for NNUE" I meant that the engine requires Rust to compile because my NNUE evaluation system uses Rust. I use Rust version 1.67.

tissatussa commented 4 months ago

hi again, i stumbled upon this conversation from 2023 .. i'm on Xubuntu 22.04 now .. i think i have Boost and a Rust version for NNUE but i get an error at the end ..

can you help ? should i provide more info ?

~/Compiled/Orca$ cat /usr/include/boost/version.hpp | grep "BOOST_LIB_VERSION"
//  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
#define BOOST_LIB_VERSION "1_82"
(base) roelof@roelof-HP-Elite-x2-1012-G2:~/Compiled/Orca$ make
mkdir -p obj
g++ -c main.cpp -Wall -std=c++17 -Iprophet-nnue/nnue/include -Ofast -march=native -mtune=native -pthread "-DORCA_TIMESTAMP=\"wo 12 jun 2024 15:11:50 UTC\"" "-DORCA_COMPILER=\"g++ 11\"" -o obj/main.o
mkdir -p obj
g++ -c util.cpp -Wall -std=c++17 -Iprophet-nnue/nnue/include -Ofast -march=native -mtune=native -pthread -o obj/util.o
mkdir -p obj
g++ -c evaluation.cpp -Wall -std=c++17 -Iprophet-nnue/nnue/include -Ofast -march=native -mtune=native -pthread -o obj/evaluation.o
mkdir -p obj
g++ -c search.cpp -Wall -std=c++17 -Iprophet-nnue/nnue/include -Ofast -march=native -mtune=native -pthread -o obj/search.o
mkdir -p obj
g++ -c nnue.cpp -Wall -std=c++17 -Iprophet-nnue/nnue/include -Ofast -march=native -mtune=native -pthread -o obj/nnue.o
g++ obj/main.o obj/util.o obj/evaluation.o obj/search.o obj/nnue.o prophet-nnue/target/release/libprophet.a -Wall -std=c++17 -Iprophet-nnue/nnue/include -Ofast -march=native -mtune=native -pthread -lboost_thread -lboost_fiber -ldl -lbz2 -o orca
/usr/bin/ld: obj/main.o: in function `boost::fibers::unbuffered_channel<SearchRequest>::push(SearchRequest&&) [clone .isra.0]':
main.cpp:(.text+0x26c5): undefined reference to `boost::fibers::wait_queue::notify_one()'
/usr/bin/ld: main.cpp:(.text+0x275c): undefined reference to `boost::fibers::wait_queue::suspend_and_wait(std::unique_lock<boost::fibers::detail::spinlock_ttas>&, boost::fibers::context*)'
/usr/bin/ld: obj/main.o: in function `worker(boost::fibers::unbuffered_channel<SearchRequest>&, boost::atomics::atomic<bool>&)':
main.cpp:(.text+0x406f): undefined reference to `boost::fibers::wait_queue::suspend_and_wait(std::unique_lock<boost::fibers::detail::spinlock_ttas>&, boost::fibers::context*)'
/usr/bin/ld: main.cpp:(.text+0x4258): undefined reference to `boost::fibers::wait_queue::notify_one()'
/usr/bin/ld: main.cpp:(.text+0x44bd): undefined reference to `boost::fibers::waker::wake() const'
/usr/bin/ld: obj/main.o: in function `boost::fibers::unbuffered_channel<SearchRequest>::~unbuffered_channel()':
main.cpp:(.text._ZN5boost6fibers18unbuffered_channelI13SearchRequestED2Ev[_ZN5boost6fibers18unbuffered_channelI13SearchRequestED5Ev]+0x85): undefined reference to `boost::fibers::wait_queue::notify_all()'
/usr/bin/ld: main.cpp:(.text._ZN5boost6fibers18unbuffered_channelI13SearchRequestED2Ev[_ZN5boost6fibers18unbuffered_channelI13SearchRequestED5Ev]+0x96): undefined reference to `boost::fibers::wait_queue::notify_all()'
/usr/bin/ld: main.cpp:(.text._ZN5boost6fibers18unbuffered_channelI13SearchRequestED2Ev[_ZN5boost6fibers18unbuffered_channelI13SearchRequestED5Ev]+0xb8): undefined reference to `boost::fibers::waker::wake() const'
collect2: error: ld returned 1 exit status
make: *** [Makefile:12: orca] Error 1