I have had few struggle to compile some wallets and here some handy information
Make sure you install the package which must be installed before compiling
sudo apt-get install libdb-dev libdb++-dev libboost-all-dev libqrencode-dev qt4-qmake libqtgui4 libqt4-dev automake
If you need to compile the GUI, make sure you have the QT packages otherwise the configure file will skip it
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
Another important dependency is the old version of DB, therefore you will have to install the 4.8 version. This is not a mandatory step because you can compile with the incompatible db flag, but it will not guarantee it will work.
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
The incompatible flag is
./configure --with-incompatible-bdb
For Wallet:
Once is finished you will have few executable files and under QT folder you will have the GUI version.
For Masternode:
Issues:
checking whether htole64 is declared... yes
checking whether be32toh is declared... yes
checking whether be64toh is declared... yes
checking whether htobe32 is declared... yes
checking whether htobe64 is declared... yes
checking for MSG_NOSIGNAL... yes
checking for library containing clock_gettime... none required
checking for visibility attribute... yes
checking whether C++ compiler accepts -fvisibility=hidden... yes
checking for Berkeley DB C++ headers... default
configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)
Solution:
Install only one version of the SSL package, make sure you dont have multiple version
apt-get install libssl1.0-dev
Make sure you install the package which must be installed before compiling
sudo apt-get install libdb-dev libdb++-dev libboost-all-dev libqrencode-dev qt4-qmake libqtgui4 libqt4-dev automake
If you need to compile the GUI, make sure you have the QT packages otherwise the configure file will skip it
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
Another important dependency is the old version of DB, therefore you will have to install the 4.8 version. This is not a mandatory step because you can compile with the incompatible db flag, but it will not guarantee it will work.
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
The incompatible flag is
./configure --with-incompatible-bdb
For Wallet:
- Clone the repo of the wallet
- Enter the root for the repo
- ./autogen.sh
- ./configure
- make
Once is finished you will have few executable files and under QT folder you will have the GUI version.
For Masternode:
- Clone the repo of the wallet
- Enter the root for the repo
- ./autogen.sh
- ./configure --without-gui
- make
Issues:
checking whether htole64 is declared... yes
checking whether be32toh is declared... yes
checking whether be64toh is declared... yes
checking whether htobe32 is declared... yes
checking whether htobe64 is declared... yes
checking for MSG_NOSIGNAL... yes
checking for library containing clock_gettime... none required
checking for visibility attribute... yes
checking whether C++ compiler accepts -fvisibility=hidden... yes
checking for Berkeley DB C++ headers... default
configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)
Solution:
/configure --with-incompatible-bdb
Issue:
configure: error: Detected LibreSSL: This is NOT supported, and may break consensus compatibility!
Solution:
Install only one version of the SSL package, make sure you dont have multiple version
apt-get install libssl1.0-dev