bitcoind를 구축하기 위한 지침은 모호하지만 OpenBSD에서 이를 수행하는 방법을 모르겠습니다. 저는 Boost를 설치했고 시스템은 OpenBSD 기본 설치에 Berkeley db 4.6, OpenSSL 등을 설치했습니다.
# gmake -f makefile.unix
Building LevelDB ...
gmake[1]: Entering directory `/root/bitcoin/bitcoin-0.8.3/src/leveldb'
g++ -I. -I./include -fno-builtin-memcmp -D_REENTRANT -DOS_OPENBSD -DLEVELDB_PLATFORM_POSIX -O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 -I/root/bitcoin/bitcoin-0.8.3/src -I/root/bitcoin/bitcoin-0.8.3/src/obj -I/usr/local/include/boost -DUSE_UPNP=0 -DUSE_IPV6=1 -I/root/bitcoin/bitcoin-0.8.3/src/leveldb/include -I/root/bitcoin/bitcoin-0.8.3/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2 -c db/builder.cc -o db/builder.o
In file included from ./port/port.h:14,
from ./db/filename.h:14,
from db/builder.cc:7:
./port/port_posix.h:80: error: '__BYTE_ORDER' was not declared in this scope
./port/port_posix.h:80: error: '__LITTLE_ENDIAN' was not declared in this scope
gmake[1]: *** [db/builder.o] Error 1
gmake[1]: Leaving directory `/root/bitcoin/bitcoin-0.8.3/src/leveldb'
gmake: *** [leveldb/libleveldb.a] Error 2
이 글을 쓴 후 나는 BDB 4.8이 없다는 것을 발견했습니다. 그래서 그것을 구해서 /usr/local/BerkeleyDB.4.8에 컴파일했습니다.
github에서 몇 가지 빌드 지침을 찾았습니다.https://github.com/bitcoin/bitcoin/pull/1815
BDB를 설치한 위치에 맞게 다음과 같이 수정했습니다.
BOOST_INCLUDE_PATH=/usr/local/include \
BOOST_LIB_PATH=/usr/local/lib \
BDB_INCLUDE_PATH=/usr/local/BerkeleyDB.4.8/include \
BDB_LIB_PATH=/usr/local/BerkeleyDB.4.8/lib \
BOOST_LIB_SUFFIX=-mt \
gmake -f makefile.unix -j8 USE_UPNP= bitcoind test_bitcoin
이제 빌드가 실패합니다. Boost와 관련이 있는 것 같습니다. 마침내 몇 가지 오류가 발생하기 전에 수백 개의 오류가 발생했습니다.
db.cpp:510: error: 'boost' has not been declared
db.cpp:510: error: expected `;' before 'pathTmp'
db.cpp:511: error: 'pathTmp' was not declared in this scope
db.cpp:527: error: 'pathAddr' was not declared in this scope
db.cpp:527: error: 'RenameOver' cannot be used as a function
db.cpp: In member function 'bool CAddrDB::Read(CAddrMan&)':
db.cpp:536: error: 'pathAddr' was not declared in this scope
gmake: *** [obj/alert.o] Error 1
gmake: *** [obj/db.o] Error 1
gmake: *** [obj/checkpoints.o] Error 1
답변1
OpenBSD-WIP를 사용하는 비트코인 포트:https://github.com/jasperla/openbsd-wip/tree/master/net/bitcoin.