I’ve been playing around with visual studio (2010) trying to build bitcoin from the source that is included in the win32 zip archive. I created a new makefile project and imported the makefile, acquired the boost, wxwidgets, and the openssl sources, and a few other files which were reported missing when I would try to build. I got as far as the build log reporting that it needed iostream.h, so I went and found a copy of that from libstdc++. Now, after trying to build with iostream.h located in my includes directory, I am getting loads of errors that look like this:
This has happened with 2 different versions of iostream.h (tried changing <iostream.h> to <iostream> in db.h also), and if I remove iostream.h from my includes directory it simply reports that file is missing and doesn’t give hundreds of lines of errors like the above. I haven’t modified any files at all, I am just trying to get the project to build in a windows environment right now…
I am sort of stuck here and haven’t been able to figure out what the problem is. Admittedly I don’t entirely know what I’m doing (I don’t have a whole lot of experience with C++ in windows), but I was wondering if anyone has any ideas what my problem might be.
The lines it’s tripping on:
ERROR extern map<string, string> mapAddressBook; ERROR extern CCriticalSection cs_mapAddressBook; ERROR extern vector<unsigned char> vchDefaultKey; OK extern bool fClient; OK extern int nBestHeight; OK extern unsigned int nWalletDBUpdated; ERROR extern DbEnv dbenv;
So it’s acting like nothing is defined, not even map and vector.
Yet, db.h is included by headers.h (and only there, nowhere else) which includes vector, map, util.h and everything before db.h.
Is VC trying to use precompiled headers and screwing it up? Could there be some leftover precompiled header files in your directory from previously failed attempts that it’s finding and using?
There’s an installer package now that makes it really easy to install MinGW. Don’t use the latest version 4.5.0, use a few versions back like 4.4.1 (1.908.0) or 1.812.0. A setup program completely installs everything, it’s not hard like it used to be. I think the only thing I had to do was rename make*.exe something to make.exe.
Off topic, but: It would be nice if someone would hack on getting tcatm’s 4-way 128-bit SSE2 code working on Windows. There’s something with MinGW’s optimisation, I’m not sure but maybe a problem with 16-byte alignment on the stack, that makes it segfault. With some fiddling, I was able to get his code to work in a test program, but not in Bitcoin itself for some reason.
46,659 total views, 2 views todayhttps://bitcointalk.org/index.php?topic=1034.msg13206#msg13206