What are the exact specs you are using?
MinGW 4.8.1 from the link in the main thread Boost 1.54 (or 1.55 - happens on both) QT 5.1.1 (or 5.2.0 - happens on both) Miniupnpc 1.8 OpenSSL 1.0.1e BerkeleyDB 4.8.30 NC Litecoin source code from GitHub ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FKY0lSbM.gif&t=663&c=Zq_ALcPkZNttkg) (happens even with all needed DLLs in the directory) Before I tried with: - QT 4.8.5 and MinGW 4.8.1 APPCRASH on the start (not because of missing DLLs) - QT 4.8.5 and MinGW 4.6.2 Could not compile BerkeleyDB Gonna try another coin now. Had a look at litecoin-qt also. Using the released 0.8.6.1 source it worked almost out of the box. Just had to replace ui->treeWidget->header()->setClickable(true); with ui->treeWidget->header()->setSectionsClickable(true); in coincontroldialog.cpp to make it work with qt 5.2
|
|
|
net.cpp points to miniupnpc folder so you need to actually set the parent folder on MINIUPNPC_INCLUDE_PATH
|
|
|
Typos fixed ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
Are the instructions in the first post of this thread updated periodically? Do they work for the current version of bitcoin (0.8.6)? I will be attempting this in the next few days on a clean win7 x64 system. I'm hoping I wont have to read through all 14 pages of this thread to get this to work.
First post updated: bitcoin 0.8.6 Qt 5.2.0 boost 1.55 Net.cpp patching in order to compile with gcc 4.8.1 when ipv6 is enabled is not needed anymore.
|
|
|
Some weeks ago I upgraded my Ubuntu system to saucy, however at that time there was still no bitcoin package for saucy available from ppa, so I decided to install bitcoin-qt (0.8.5-1) from universe (which depends on libdb5.1++) instead. I thought that builds linked against libdb4.8 wouldn't even be able to read wallets created by builds linked against libdb5.1 Ubuntu precise has packages for libdb5.1-dev and libdb5.1++-dev, but using these will break binary wallet compatibility, and is not recommended.
but the bitcoin-qt (0.8.5-1) [universe] generated wallet seems to be readable by both bitcoin-qt_0.8.5-saucy1 (ppa) and official bitcoin-0.8.5-win32. Is the above warning still true? Am I missing something? Thanks
|
|
|
The makefile.mingw still contains an old multithreading flaw: https://github.com/bitcoin/bitcoin/pull/3121Not sure if it is a big problem but if you are looking for a stable bitcoind.exe you might want to consider patching it. I tried the patch, but it seems it doesn't make any difference, the compiled binaries look identical (except header timestamp).
|
|
|
Well, that was probably an unoptimized full build, using the previous configuration options along with make -j switch it takes about 20-30 mins on a 3570k @ 4.2GHz ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
Not crashing for me, at least on testnet. And I have still had no joy in trying to create static libraries in Qt in order to compile-link a version of Qt that doesn't need those 5 (or 6) .dlls in order to run.
First post updated, static version seems to build just fine. What errors do you get?
|
|
|
Here is the bitcoind release 0.8.5 exit running on a "pure" Windows 7 machine: ![](https://ip.bitcointalk.org/?u=http%3A%2F%2Flostabout.com%2Fbtc%2Fw7exit%2520error.gif&t=663&c=G-b1NpX_bt2f6w) Am I really the only one who ever exits bitcoind.exe on a windows machine, or shuts that machine down, or closes bitcoind.exe's window or ends the bitcoind.exe process (task manager, etc.)? There has to be someone who has seen this on bitcoind.exe 0.8.2, 0.8.3, 0.8.4, 0.8.5? Crashing for me too when not using bitcoind stop to stop the daemon (v0.8.5, gcc 4.8.1-release-posix-dwarf-rev5).
|
|
|
C:\bitcoin>mingw32-make -f Makefile.Release cd C:/bitcoin/src/leveldb && CC=gcc CXX=g++ TARGET_OS=OS_WINDOWS_CROSSCOMPILE mingw32-make OPT="-pipe -D_FORTIFY_SOURCE=2 -O2" libleveldb.a libmemenv.a && ranlib C:/bitcoin/src/leveldb/libleveldb.a && ranlib C:/bitcoin/src/leveldb/libmemenv.a CC: ошибка: =gcc: No such file or directory CC: ошибка: CXX=g++: No such file or directory CC: ошибка: TARGET_OS=OS_WINDOWS_CROSSCOMPILE: No such file or directory CC: ошибка: mingw32-make: No such file or directory CC: ошибка: OPT=-pipe -D_FORTIFY_SOURCE=2 -O2: No such file or directory mingw32-make: *** [c:/bitcoin/src/leveldb/libleveldb.a] Error 1 Why I recive this error on qt compilling ? Make sure you build leveldb from a msys shell then comment out genleveldb.commands from bitcoin-qt.pro ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
Openssl configured as follows from MSYS (I use msys-perl from MSYS as strawberry perl behaved strangely while configuring openssl) Configure shared mingw make Added LIB and INCLUDE environment variables (I added them via control panel, but doing it from cmd should be exactly the same) set INCLUDE=C:\deps\openssl-1.0.1e\include set LIB=C:\deps\openssl-1.0.1e Configured qt as follows configure -release -opensource -confirm-license -make libs -opengl desktop -qt-zlib -no-icu -no-vcproj -openssl-linked mingw32-make Then removed LIB and INCLUDE environment variables and built the project. I also had a look at compiling a statically linked version of the executable, it works but there is no spinner shown while downloading blocks ![Huh](https://bitcointalk.org/Smileys/default/huh.gif) If you want to give it a try you need to compile qt statically configure -release -static -opensource -confirm-license -make libs -opengl desktop -qt-zlib -no-icu -no-vcproj -no-openssl mingw32-make Set LIB and INCLUDE environment variables set INCLUDE=C:\Qt\5.1.0\qtbase\include set LIB=C:\Qt\5.1.0\qtbase\lib Then edit bitcoin-qt.pro by adding And edit QMAKE_LFLAGS by adding the -static flag win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static Then build from cmd or qt creator
|
|
|
Ruby seems to be required to build QtWebKit, so it's not needed. I compiled shared openssl libraries and then configured qt with -openssl-linked. It built with no problems, the generated bitcoin-qt asks for ssleay32.dll and libeay32.dll if it doesn't find them. However, it's not clear to me what -openssl-linked really does. Here is an interesting comment I found on qt project forums: Using -openssl-linked does not make openssl statically linked. What it does is switch from using dlopen() and dlsym() to load and call the openssl library and instead uses the normal dynamic linker. Using this option means that issues such as binary compatibility of the openssl library need to be handled or avoided, whereas the default of using dlopen() allows Qt to work around binary compatibility issues in openssl.
|
|
|
%CD%\configure.bat -prefix %CD%\qtbase -debug-and-release -developer-build -opensource -confirm-license -c++11 -opengl desktop -platform win32-g++ -qt-pcre -nomake demos -nomake examples -nomake tests -no-vcproj -no-strip -sse2 -sse3 -ssse3 -sse4.1 -sse4.2 -avx -avx2 -openssl -no-dbus -no-audio-backend -no-style-windowsce -no-style-windowsmobile
I confirm bitcoin-qt (latest from master branch) compiles successfully with gcc-x32-4.8.1-release-posix-dwarf-rev2. You can build qt 5.1 libraries without icu and openssl. After installing and adding to path Strawberry Perl 5.18, Python 2.7 and Ruby 2.0 I configured qt as follows cd C:\Qt\5.1.0 if not exist qtbase\.gitignore type nul>qtbase\.gitignore configure -release -opensource -confirm-license -make libs -opengl desktop -qt-zlib -no-icu -no-vcproj -no-openssl
Had to disable ipv6, or it would complain like this: ..\bitcoin-master\src\net.cpp:1601:87: error: invalid conversion from 'void*' to 'const char*' [-fpermissive] setsockopt(hListenSocket, IPPROTO_IPV6, IPV6_V6ONLY, (void*)&nOne, sizeof(int)); ^ In file included from ../bitcoin-master/src/compat.h:15:0, from ../bitcoin-master/src/netbase.h:11, from ../bitcoin-master/src/util.h:30, from ../bitcoin-master/src/bignum.h:12, from ../bitcoin-master/src/chainparams.h:9, from ..\bitcoin-master\src\net.cpp:6: c:/mingw32/i686-w64-mingw32/include/winsock2.h:990:34: error: initializing argument 4 of 'int setsockopt(SOCKET, int, int, const char*, int)' [-fpermissive]
|
|
|
I don't really like such all-in-one build-scripts, as I want to know what is going on.
It simply prepares system prerequisites and builds qt, it is also mentioned on the official wiki http://qt-project.org/wiki/MinGW-64-bitCan you try to build Qt with compiler x32-4.8.1-release-posix-dwarf-rev2 and my short batch file from above? I'm sure you need to compile OpenSSL before or need to change the -openssl switch into -no-openssl.
I'll give it a try Didn't know there was an MSYS2, where did you get that?
Dia
http://sourceforge.net/projects/msys2/It's from the same authors of mingw-builds ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
Well, that would probably help. ![Tongue](https://bitcointalk.org/Smileys/default/tongue.gif) I found a gcc 4.6.2 package....but I'm not quite sure how to go about rolling back Mingw's 4.7 package. Looking at the info on mingw's site didn't help much, I still have no idea how to figure out what should be going where, since it appears there are files with 4.7.2 in the name sprinkled all over mingw's various directories. Any input for someone more experienced with this program would be very helpful, I'm hesitant to mess with anything at this point for fear I'll accidentally nuke my whole mingw install. Many thanks to nitrogenetics and old c coder, by the way, for being patient with us newbs. Your advice is invaluable. ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) Better starting from scratch on a clean vm (see first post)
|
|
|
Nice that you are playing around with Qt 5.1 also ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) , here is my configure.bat call, perhaps we can exchange some information. I seem to be unable to use the -openssl-linked parameter, I don't get it to compile. Here is my batch-file to compile Qt 5.1: set QMAKESPEC= set QTDIR= set MAKE_COMMAND=
D: cd Qt_5.1.0 RMDIR qtwebkit /S /Q RMDIR qtwebkit-examples /S /Q if not exist qtbase\.gitignore type nul>qtbase\.gitignore START %CD%\configure.bat -prefix %CD%\qtbase -debug-and-release -developer-build -opensource -confirm-license -c++11 -opengl desktop -platform win32-g++ -qt-pcre -nomake demos -nomake examples -nomake tests -no-vcproj -no-strip -sse2 -sse3 -ssse3 -sse4.1 -sse4.2 -avx -avx2 -openssl -no-dbus -no-audio-backend -no-style-windowsce -no-style-windowsmobile REM -fully-process PAUSE
mingw32-make.exe -j 4 PAUSE
mingw32-make.exe -j 4 docs PAUSE
mingw32-make.exe -j 4 install PAUSE
Ok, it seems I got it working, here is what I did: -Installed MSYS2, cloned and configured qt-builds. See: https://github.com/Alexpux/Qt-builds/-Modified buildall to get the latest x32-4.8.1-release-posix-dwarf-rev2.7z and x64-4.8.1-release-posix-seh-rev2.7z -Built Qt 5.1.0 (took ~3.5 hours, qt-creator failed) ./buildall --qt-version=5.1.0 --opengl-desktop x32 -Built openssl (os must be manually specified) -Built DBD (os must be manually specified) ../dist/configure --disable-replication --enable-mingw --enable-cxx --build=i686-pc-mingw32 -Built miniupnpc (double clic mingw32make.bat) -Built leveldb (the usual way) -Added dependency library locations to bitcoin-qt.pro, disabled leveldb generation then qmake "USE_IPV6=-" bitcoin-qt.pro mingw32-make -f Makefile.Release Disabling ipv6 was necessary, otherwise compilation would fail Makefile.Release:28913: recipe for target 'build/net.o' failed mingw32-make: *** [build/net.o] Error 1 (You can see a more detailed error when building from qt-creator )
|
|
|
|