- If you have never used command-line compile tools before, prepare to be baffled and befuddled. This is not a nice clean GUI where you hit the compile button, wait a few seconds, and go try your executable. Thankfully, I've used gcc before, so I wasn't completely out of my element
Not much of an option there, sadly...
- Expect the whole process from learning to downloading to compiling to troubleshooting, to take HOURS. I'm not kidding. These makefiles build THOUSANDS of object files, of which bitcoin probably uses a tiny percentage. Boost is the worst of them all. Just start the make and let it run overnight.
Wasn't nearly that bad for me. Though the instructions may be out of date at this point, building on my (fairly beefy) desktop (in a VM), even for boost, worked pretty well. That said, I know devrandom has said that these instructions build several copies of boost for different usage scenarios whereas bitcoin uses only one, so the boost build options could be trimmed down maybe as much as 75%.
- Before running the steps outlined in the earlier post, I recommend you get yourself a github account, and follow their instructions to download and install "git" and set up your own sandbox (fork) of the bitcoin source. This will involve yet even more baffling command lines that need to be copied and run exactly as written on the github guide to getting started
I would agree only because it means its easier for you to contribute code to bitcoin and help the development effort, but to just build, I'm not sure its entirely necessary.
- Do not watch the scroll of status messages going by during the eternity it takes to compile everything. You will see countless frightening-sounding warnings which will only confuse you
- Do not expect a nice little "all done, everything went ok!" message at the end of a long compilation. The nice ones just stop printing status messages, and you are supposed to know from the acres of text above that nothing bad happened. The others are less nice . . .
- Boost finally finished compiling with this very comforting message:
...failed updating 8 targets...
...skipped 8 targets...
...updated 4393 targets...
Great.
Yep, boost always fails a few targets and skips others, why I don't know nor really care too much, but yea just ignore the messages unless the last line is some kind of error message, I would say.
- At the end of the make for openssl, the linker returned a very fatal-sounding
undefined reference to `WinMain@16'
I wasted some time trying to "make clean" and try "make" again, but eventually I went on to the next step, and I still got the expected libeay32.dll without any complaints.
- Finally, I tried compiling bitcoin (ha!) - as you might expect, it wasn't happy. The error message was:
In file included from util.cpp:5:0:
headers.h:38:28: fatal error: openssl/buffer.h: No such file or directory
I found buffer.h in the includes directory for openssl, so I copied that directory out and renamed it "openssl" which I then put everywhere I could think of. No luck.
Now there I can't really help, you'll have to google around...that said, I don't know why that would fail as openssl has always worked first time for me (XP and Win7).
Linux compile tools let you stand on the shoulders of giants, but the giants all have Asperger's.
They work great on Linux, on Windows...not so much.
I will say this however: When I wrote these instructions Bitcoin official Windows binaries were built on Windows, now they are built via gitian in Linux.
The absolute easiest way to build Bitcoin is via gitian as its just a matter of downloading the tars of the various dependencies and running gitian, it will handle the rest.
I have to admit I haven't built Bitcoin on Win32 in quite some time now...