Unable to compile bitcoin
I thought I would try bitcoin but I am unable to compile the latest bitcoin client (bitcoin-0.3.24).
I'm using 32-bit Slackware 13.1.0. When I initially attempted to compile I got errors related to wxWidgets being missing. This was resolved by compiling and installing wxWidgets. However I still get the following error: Code:
g++ -c -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -DNOPCH -DFOURWAYSSE2 -DUSE_SSL -DUSE_UPNP=0 -I/usr/local/lib/wx/include/gtk2-unicode-2.9 -I/usr/loal/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -DGUI -o obj/util.o util.cpp However, most importantly, if there is a solution for this problem then please tell me. I also tried simply running the binary that was distributed with the package, but that resulted in the following error: Code:
./bitcoin: symbol lookup error: ./bitcoin: undefined symbol: gtk_widget_get_realized Quote:
The compilation still fails, but the compiler added one new line: Code:
/usr/include/db_cxx.h:796: error: 'DB_XIDDATASIZE' was not declared in this scope Code:
g++ -c -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -DNOPCH -DFOURWAYSSE2 -DUSE_SSL -DUSE_UPNP=0 -I/usr/local/lib/wx/include/gtk2-unicode-2.9 -I/usr/local/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -DGUI -o obj/util.o util.cpp |
Try using Google and searching for the error message. Why won't this work for you --> http://forums.atomicmpc.com.au/index...howtopic=39944 I bet you're having the same problem, older db libraries than the Bitcoin devs are building against. The other option is to use an earlier version of Bitcoin.
Also, I'm not a Slackware user, but I believe Slackware installs the headers and static libs rather than splitting them out into a -dev package. You should reinstall the Slackware db package and not install Ubuntu cruft or you will very likely have a borked system in no time. I'd fix that before I worried about building Bitcoin. |
Quote:
I might be making some progress here, I'm not sure. I've been trying to follow the guide at (the PDF file) http://forums.atomicmpc.com.au/index...howtopic=39944 I installed all of the dependencies and then tried to use the Makefile presented in the document. This however only resulted in errors from make -- not errors from the compiler. With an unspecified rule. I was unable to modify the Makefile trivially so I made more than just a few modifications, this is my Makefile for bitcoin now: Code:
DEPSDIR=/tmp/bitcoin/deps Code:
ui.cpp:19: error: expected constructor, destructor, or type conversion before '(' token |
Changing the Makefile isn't going to help. You either need to upgrade your version of Berkeley db to that version the Bitcoin developers are using, use an older version of Bitcoin that is compatible with the Berkely db version you have installed, or hack the Bitcoin code to be compatible with the Berkeley db version you have installed.
|
Quote:
Code:
ui.cpp:19: error: expected constructor, destructor, or type conversion before '(' token Code:
g++ -O2 -Wno-invalid-offsetof -Wformat -g -DwxDEBUG_LEVEL=0 -I/tmp/bitcoin/deps//lib/wx/include/gtk2-unicode-static-2.9 -I/tmp/bitcoin/deps//include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=0 -D__WXGTK__ -pthread -DNOPCH -I"/tmp/bitcoin/deps/include" -c ui.cpp |
Not surprising. Those errors have nothing to do with Berkeley db. The wx should clue you in that those errors are related to wxWidgets.
|
Quote:
|
OK, so I installed Slackware 13.1, 32-bit in a virtual machine (IDK, I guess I was bored). I confirmed your original error with a fresh Slackware install. The reason was Berkeley DB is too old on 13.1 (hhhmmm, seems I said that before).
You will need to build against the latest wxWidgets (2.9 series) and the latest Berkeley DB (5.2.28). MiniUPNP is optional, but if you choose to build against it, you'll need the latest release of that as well. Slackware 13.1 comes with older versions of these libraries; the version of Boost that comes with 13.1 seems to be OK. Therefore, to get the latest bitcoin to build, you need to install the newer wxWidgets and Berkeley DB. I would recommend installing them in the /usr/local prefix so they don't overwrite your existing files. Installing in /usr/local is not the default for Berkeley DB. Once you have the correct version of wxWidgets and db, you need to make some minor tweaks to makefile.unix. First change the line USE_UPNP:=0 to USE_UPNP:= Then change the -Bstatic to -Bdynamic in the LIBS variable. Or re-install Boost with the static libraries. The Bitcoin client and daemon will both successfully build after making these changes. I don't know if it works (I don't care either), but it builds without error. |
All times are GMT -5. The time now is 03:25 AM. |