Pages:
Author

Topic: Building headless Bitcoin and Bitcoin-qt on Windows - page 56. (Read 419390 times)

hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
I have managed to do it.

I just started again but this time turned off the music and concentrated lol.
sr. member
Activity: 260
Merit: 251
Are there any successful windows users out there (here) that compile on windows, for windows, bitcoind & bitcoin-qt? Am I the only one in the universe Huh

I sure would like to get a windows "gang" together, in a new thread perhaps, discussing and creating an .sln for free VC++ Express 2005 (which then could be easily "upped" to 2008, 2010, 2012).

I do use the free Qt creator, but it seems "bloated" and slow (I do have other stuff running.) and I'm not really familiar with it. I know that there are "hooks" to get one from Qt creator to VS 2008 (?) and VS 2010. But those products (Visual Studios) are not free...

The Qt windows app bitcoin-qt.exe, seems lacking in some respects. I offered a splash screen mod,
https://github.com/old-c-coder/bitcoin-git/commit/289d78d6aaf3ea4bbafd681b96cd8029b3b3b30d
but so far no comments. Maybe I am alone in the windows world? Undecided

But let me say that the bitcoin-qt interface of buttons, dialog boxes, tool tips, etc. are easily "snapped/wired" up in VC++ Express. It's just the "meat" behind that is needed.

And there seems to be windows only ways to build BerkeleyDB, openssl and boost. What seems hard is the windows build for levelDB. At least that is my reading, i.e. steps 3.0 & 3.1 for leveldb in windows.

Other than myriad details of "cooking" all the syntactic sugar/salt/saccharin of C++ from G++(Linux) into CL(MS) and how to test, that's all I see in the way (famous last words).

Ron
sr. member
Activity: 260
Merit: 251
 Grin
....
I am thinking that I delete everything and start from scratch? Think that might be a good idea? And you are right, I did the first attempt with 1.52 and the next with 1.54 it has been a while since I compiled Bitcoin, a long while.

Wait until you want to compile bitcoin-qt! Grin It's really not that bad.

Ron
hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
Ok, I think I have it looking in the right places but I am now getting this error, anyone have any ideas please?

C:\bitcoin\bitcoin-master\src>mingw32-make -f makefile.mingw
g++ -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -IC:/bitcoin/bitcoin-master/src/
leveldb/include -IC:/bitcoin/bitcoin-master/src/leveldb/helpers -I"C:/bitcoin/bitcoin-master/src" -I"c:/deps/boost_1_54_0" -I"c:/deps/db-4.8.30.NC/build_unix" -I"c:/deps/openssl-1.0.1e/include" -Wl,--
dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -o bitcoind.exe -L"C:/bitcoin/bitcoin-master/src/leveldb" -L"C:\deps\boost_1_54_0\stage\lib" -L"c:/deps/db-4.8.30.NC/build_unix" -L"c:/deps/openssl
-1.0.1e" leveldb/libleveldb.a obj/alert.o obj/version.o obj/checkpoints.o obj/netbase.o obj/addrman.o obj/crypter.o obj/key.o obj/db.o obj/init.o obj/bitcoind.o obj/keystore.o obj/core.o obj/main.o ob
j/net.o obj/protocol.o obj/bitcoinrpc.o obj/rpcdump.o obj/rpcnet.o obj/rpcmining.o obj/rpcwallet.o obj/rpcblockchain.o obj/rpcrawtransaction.o obj/script.o obj/sync.o obj/util.o obj/wallet.o obj/walle
tdb.o obj/hash.o obj/bloom.o obj/noui.o obj/leveldb.o obj/txdb.o obj/chainparams.o -l leveldb -l memenv -l boost_system-mgw46-mt-sd-1_54 -l boost_filesystem-mgw46-mt-sd-1_54 -l boost_program_options-m
gw46-mt-sd-1_54 -l boost_thread-mgw46-mt-sd-1_54 -l boost_chrono-mgw46-mt-sd-1_54 -l db_cxx -l ssl -l crypto -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l o
le32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l mswsock -l shlwapi
obj/alert.o: In function `thread), std::basic_string >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:279: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread&), boost::_bi::list1 > > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread), boost::_bi::list1 > > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoind.o: In function `thread > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoind.o: In function `Z7AppInitiPPc':
C:\bitcoin\bitcoin-master\src/bitcoind.cpp:117: undefined reference to `boost::thread::join()'
obj/main.o: In function `thread > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value, boost::_bi::v
alue > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoinrpc.o: In function `ZN5boost12thread_group8join_allEv':
c:/deps/boost_1_52_0/boost/thread/detail/thread_group.hpp:74: undefined reference to `boost::thread::join()'
obj/bitcoinrpc.o: In function `thread, boost::_bi::list1 > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
collect2: ld returned 1 exit status
mingw32-make: *** [bitcoind.exe] Error 1

I am seeing the compiler (G++) looking for both boost 1_52_0 and 1_54_0 code in the above screen capture!

Nitrogenetics gave in his step 2.3 a download of boost 1_53_0

Now you are showing gcc (g++) being aimed at both boost 1_52_0 and boost 1_54_0! So how did they get into your system? Or are they there at all? Maybe you didn't fully "appreciate" his step 3.2, where you must tailor makefile.mingw to your configuration. Note the BOOST_SUFFIX?=... in your makefile.mingw

Me, I'm all boost 1_53_0 Grin

It is not enough that you follow nitrogenetics "recipe". You must understand what is being accomplished and how you must tailor it to your hard drive and system requirements.

One of my makefile.mingw files looks like this in that area:
#DEPSDIR?=/usr/local
#BOOST_SUFFIX?=-mgw46-mt-sd-1_52
BOOST_SUFFIX?=-mgw46-mt-sd-1_53

# -I"$(DEPSDIR)/include"
# -I"c:/boost_1_53_0/boost/test/included" \
# maybe -I"c:/boost_1_53_0/boost/test" \

INCLUDEPATHS= \
 -I"$(CURDIR)" \
 -I"c:/boost_1_53_0" \
 -I"c:/db-4.8.30.NC/build_unix" \
 -I"c:/openssl-1.0.1c/include"

# -L"$(DEPSDIR)/lib"
# -L"c:/boost_1_53_0"

LIBPATHS= \
 -L"$(CURDIR)/leveldb" \
 -L"c:/boost_1_53_0/stage/lib" \
 -L"c:/db-4.8.30.NC/build_unix" \
 -L"c:/openssl-1.0.1c"

LIBS= \
 -l leveldb \
 -l memenv \
 -l boost_system$(BOOST_SUFFIX) \
 -l boost_filesystem$(BOOST_SUFFIX) \
 -l boost_program_options$(BOOST_SUFFIX) \
 -l boost_thread$(BOOST_SUFFIX) \
 -l boost_chrono$(BOOST_SUFFIX) \
 -l db_cxx \
 -l ssl \
 -l crypto

I don't have one "dependencies" directory. I have branches for various versions of boost, openssl, BerkeleyDB.

I just swap a line or two when I want to try something. Actually I just changed one line in the INCLUDEPATHS and one line in the LIBPATHS to go from openssl-1.0.1c to openssl-1.0.1e and everything works fine. This is for bitcoind.exe

Now how about a few Satoshis Wink

Ron

I am thinking that I delete everything and start from scratch? Think that might be a good idea? And you are right, I did the first attempt with 1.52 and the next with 1.54 it has been a while since I compiled Bitcoin, a long while.
sr. member
Activity: 260
Merit: 251
Ok, I think I have it looking in the right places but I am now getting this error, anyone have any ideas please?

C:\bitcoin\bitcoin-master\src>mingw32-make -f makefile.mingw
g++ -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -IC:/bitcoin/bitcoin-master/src/
leveldb/include -IC:/bitcoin/bitcoin-master/src/leveldb/helpers -I"C:/bitcoin/bitcoin-master/src" -I"c:/deps/boost_1_54_0" -I"c:/deps/db-4.8.30.NC/build_unix" -I"c:/deps/openssl-1.0.1e/include" -Wl,--
dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -o bitcoind.exe -L"C:/bitcoin/bitcoin-master/src/leveldb" -L"C:\deps\boost_1_54_0\stage\lib" -L"c:/deps/db-4.8.30.NC/build_unix" -L"c:/deps/openssl
-1.0.1e" leveldb/libleveldb.a obj/alert.o obj/version.o obj/checkpoints.o obj/netbase.o obj/addrman.o obj/crypter.o obj/key.o obj/db.o obj/init.o obj/bitcoind.o obj/keystore.o obj/core.o obj/main.o ob
j/net.o obj/protocol.o obj/bitcoinrpc.o obj/rpcdump.o obj/rpcnet.o obj/rpcmining.o obj/rpcwallet.o obj/rpcblockchain.o obj/rpcrawtransaction.o obj/script.o obj/sync.o obj/util.o obj/wallet.o obj/walle
tdb.o obj/hash.o obj/bloom.o obj/noui.o obj/leveldb.o obj/txdb.o obj/chainparams.o -l leveldb -l memenv -l boost_system-mgw46-mt-sd-1_54 -l boost_filesystem-mgw46-mt-sd-1_54 -l boost_program_options-m
gw46-mt-sd-1_54 -l boost_thread-mgw46-mt-sd-1_54 -l boost_chrono-mgw46-mt-sd-1_54 -l db_cxx -l ssl -l crypto -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l o
le32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l mswsock -l shlwapi
obj/alert.o: In function `thread), std::basic_string >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:279: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread&), boost::_bi::list1 > > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread), boost::_bi::list1 > > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoind.o: In function `thread > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoind.o: In function `Z7AppInitiPPc':
C:\bitcoin\bitcoin-master\src/bitcoind.cpp:117: undefined reference to `boost::thread::join()'
obj/main.o: In function `thread > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value, boost::_bi::v
alue > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoinrpc.o: In function `ZN5boost12thread_group8join_allEv':
c:/deps/boost_1_52_0/boost/thread/detail/thread_group.hpp:74: undefined reference to `boost::thread::join()'
obj/bitcoinrpc.o: In function `thread, boost::_bi::list1 > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
collect2: ld returned 1 exit status
mingw32-make: *** [bitcoind.exe] Error 1

I am seeing the compiler (G++) looking for both boost 1_52_0 and 1_54_0 code in the above screen capture!

Nitrogenetics gave in his step 2.3 a download of boost 1_53_0

Now you are showing gcc (g++) being aimed at both boost 1_52_0 and boost 1_54_0! So how did they get into your system? Or are they there at all? Maybe you didn't fully "appreciate" his step 3.2, where you must tailor makefile.mingw to your configuration. Note the BOOST_SUFFIX?=... in your makefile.mingw

Me, I'm all boost 1_53_0 Grin

It is not enough that you follow nitrogenetics "recipe". You must understand what is being accomplished and how you must tailor it to your hard drive and system requirements.

One of my makefile.mingw files looks like this in that area:
#DEPSDIR?=/usr/local
#BOOST_SUFFIX?=-mgw46-mt-sd-1_52
BOOST_SUFFIX?=-mgw46-mt-sd-1_53

# -I"$(DEPSDIR)/include"
# -I"c:/boost_1_53_0/boost/test/included" \
# maybe -I"c:/boost_1_53_0/boost/test" \

INCLUDEPATHS= \
 -I"$(CURDIR)" \
 -I"c:/boost_1_53_0" \
 -I"c:/db-4.8.30.NC/build_unix" \
 -I"c:/openssl-1.0.1c/include"

# -L"$(DEPSDIR)/lib"
# -L"c:/boost_1_53_0"

LIBPATHS= \
 -L"$(CURDIR)/leveldb" \
 -L"c:/boost_1_53_0/stage/lib" \
 -L"c:/db-4.8.30.NC/build_unix" \
 -L"c:/openssl-1.0.1c"

LIBS= \
 -l leveldb \
 -l memenv \
 -l boost_system$(BOOST_SUFFIX) \
 -l boost_filesystem$(BOOST_SUFFIX) \
 -l boost_program_options$(BOOST_SUFFIX) \
 -l boost_thread$(BOOST_SUFFIX) \
 -l boost_chrono$(BOOST_SUFFIX) \
 -l db_cxx \
 -l ssl \
 -l crypto

I don't have one "dependencies" directory. I have branches for various versions of boost, openssl, BerkeleyDB.

I just swap a line or two when I want to try something. Actually I just changed one line in the INCLUDEPATHS and one line in the LIBPATHS to go from openssl-1.0.1c to openssl-1.0.1e and everything works fine. This is for bitcoind.exe

Now how about a few Satoshis Wink

Ron
hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
Ok, I think I have it looking in the right places but I am now getting this error, anyone have any ideas please?

C:\bitcoin\bitcoin-master\src>mingw32-make -f makefile.mingw
g++ -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_IPV6=1 -IC:/bitcoin/bitcoin-master/src/
leveldb/include -IC:/bitcoin/bitcoin-master/src/leveldb/helpers -I"C:/bitcoin/bitcoin-master/src" -I"c:/deps/boost_1_54_0" -I"c:/deps/db-4.8.30.NC/build_unix" -I"c:/deps/openssl-1.0.1e/include" -Wl,--
dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -o bitcoind.exe -L"C:/bitcoin/bitcoin-master/src/leveldb" -L"C:\deps\boost_1_54_0\stage\lib" -L"c:/deps/db-4.8.30.NC/build_unix" -L"c:/deps/openssl
-1.0.1e" leveldb/libleveldb.a obj/alert.o obj/version.o obj/checkpoints.o obj/netbase.o obj/addrman.o obj/crypter.o obj/key.o obj/db.o obj/init.o obj/bitcoind.o obj/keystore.o obj/core.o obj/main.o ob
j/net.o obj/protocol.o obj/bitcoinrpc.o obj/rpcdump.o obj/rpcnet.o obj/rpcmining.o obj/rpcwallet.o obj/rpcblockchain.o obj/rpcrawtransaction.o obj/script.o obj/sync.o obj/util.o obj/wallet.o obj/walle
tdb.o obj/hash.o obj/bloom.o obj/noui.o obj/leveldb.o obj/txdb.o obj/chainparams.o -l leveldb -l memenv -l boost_system-mgw46-mt-sd-1_54 -l boost_filesystem-mgw46-mt-sd-1_54 -l boost_program_options-m
gw46-mt-sd-1_54 -l boost_thread-mgw46-mt-sd-1_54 -l boost_chrono-mgw46-mt-sd-1_54 -l db_cxx -l ssl -l crypto -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l o
le32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l mswsock -l shlwapi
obj/alert.o: In function `thread), std::basic_string >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:279: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread&), boost::_bi::list1 > > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/init.o: In function `thread), boost::_bi::list1 > > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoind.o: In function `thread > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoind.o: In function `Z7AppInitiPPc':
C:\bitcoin\bitcoin-master\src/bitcoind.cpp:117: undefined reference to `boost::thread::join()'
obj/main.o: In function `thread > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value, boost::_bi::v
alue > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/net.o: In function `thread, boost::_bi::value > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
obj/bitcoinrpc.o: In function `ZN5boost12thread_group8join_allEv':
c:/deps/boost_1_52_0/boost/thread/detail/thread_group.hpp:74: undefined reference to `boost::thread::join()'
obj/bitcoinrpc.o: In function `thread, boost::_bi::list1 > > >':
c:/deps/boost_1_52_0/boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()'
collect2: ld returned 1 exit status
mingw32-make: *** [bitcoind.exe] Error 1
hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
Wink
Ok, it seems just my actually using my brain for once that I managed to get the boost to work, strangely by copying my MingW folder to D:\MingW. Must be pointing to that directory for some reason as my main drive is C.

Hoever, a new problem, on the mingw32-make -f makefile.mingw command in the Windows CMD prompt I get this error :

d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono-mgw46-mt-sd-1_52_0
collect2: ld returned 1 exit status
mingw32-make: *** [bitcoind.exe] Error 1

Does anyone know what could be the problem?

I have searched loads and tired quiet a few things and also a few methods of my own but just cannot get it to work, the 30 Degree Centigrade heat at the moment in the UK is not helping either lol.

Please help me someone, I beg of you?  Huh

So you are trying to make a bitcoind.exe since you are doing a (step 3.3)
mingw32-make -f makefile.mingw

and you see a cannot find ...
cannot find -lboost_system-mgw46-mt-sd-1_52_0

This suggests that you never edited the makefile.mingw, (according to the previous step 3.2)
If you did step 2.3, you installed boost 1.53.0

Do I get a few Satoshis? Smiley

Ron



Well I got stuck in again before I saw this post and changed the path variable of MingW back to the C: which is how I wanted it at the start. I then downloaded Boost 1_54_0 and I did make all the changes that were detailed in the Makefile.

MY head is spinning as I have done exactly what is written in the tutorial section by section.

It just keep putting up that same error.
sr. member
Activity: 260
Merit: 251
 Wink
Ok, it seems just my actually using my brain for once that I managed to get the boost to work, strangely by copying my MingW folder to D:\MingW. Must be pointing to that directory for some reason as my main drive is C.

Hoever, a new problem, on the mingw32-make -f makefile.mingw command in the Windows CMD prompt I get this error :

d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono-mgw46-mt-sd-1_52_0
collect2: ld returned 1 exit status
mingw32-make: *** [bitcoind.exe] Error 1

Does anyone know what could be the problem?

I have searched loads and tired quiet a few things and also a few methods of my own but just cannot get it to work, the 30 Degree Centigrade heat at the moment in the UK is not helping either lol.

Please help me someone, I beg of you?  Huh

So you are trying to make a bitcoind.exe since you are doing a (step 3.3)
mingw32-make -f makefile.mingw

and you see a cannot find ...
cannot find -lboost_system-mgw46-mt-sd-1_52_0

This suggests that you never edited the makefile.mingw, (according to the previous step 3.2)
If you did step 2.3, you installed boost 1.53.0

Do I get a few Satoshis? Smiley

Ron

hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
Ok, it seems just my actually using my brain for once that I managed to get the boost to work, strangely by copying my MingW folder to D:\MingW. Must be pointing to that directory for some reason as my main drive is C.

Hoever, a new problem, on the mingw32-make -f makefile.mingw command in the Windows CMD prompt I get this error :

d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw46-mt-sd-1_52_0
d:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono-mgw46-mt-sd-1_52_0
collect2: ld returned 1 exit status
mingw32-make: *** [bitcoind.exe] Error 1

Does anyone know what could be the problem?

I have searched loads and tired quiet a few things and also a few methods of my own but just cannot get it to work, the 30 Degree Centigrade heat at the moment in the UK is not helping either lol.

Please help me someone, I beg of you?  Huh
hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
This boost is annoying me no end, everything else has gone so smooth but I have added everything people have told me and follow the guide to the T. I just don't know what I am missing.
hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
Hi everyone, I have followed this tutorial word for word but everytime I try to compile boost I get this error - C:\deps\boost_1_54_0>bootstrap.bat mingw
Building Boost.Build engine
'gcc' is not recognized as an internal or external command,
operable program or batch file.

Does anyone know what i am doing wrong as I do not want to botch it and try and carry on with this error?

Thanks

If it says it can't find gcc, then did you do nitrogenetics step 1.3? Which is
Add MinGW bin folder to your PATH environment variable (C:\MinGW\bin if you used installer defaults)

Ron

Yeah I have gone that but still get this error:

Building Boost.Build engine
'gcc' is not recognized as an internal or external command,
operable program or batch file.

Any ideas?

Thanks for you help so far.
sr. member
Activity: 260
Merit: 251
This may be a stupid question, but when I make modifications to the source, which make do I need to run?  The Qt make, or the mingw make?  I've been doing both as the Qt make doesn't seem to pickup non-qt source changes.

Also, it is not picking up Qt and Mingw static libraries (ie. I'm having to redistribute them).  Where do I point the gcc to incoporate them in the exe?  -static in LDFLAGS doesn't seem to do it (at least not alone).

as to those "loose" dlls, I still think it is in my message #41,
https://bitcointalksearch.org/topic/m.2177060

the problem is in bitcoin-qt.pro, I believe. When I added the change as described in the link above, of course then doing step 4.3
qmake "USE_UPNP=-" bitcoin-qt.pro to create the makefile.release.

Beware that qmake is "sensitive" to changes in white space, tabs, etc.! Sort of "pythony"!

If you modify the source files and don't rename or delete any, then for bitcoind, you only have to do step 3.3, i.e.
mingw32-make -f makefile.mingw
(I have that line in a batch file)

for bitcoin-qt, just step the last line in step 4.3, i.e.
mingw32-make -f Makefile.Release
(again I have it in a batch file)

Ron
sr. member
Activity: 260
Merit: 251
Hi everyone, I have followed this tutorial word for word but everytime I try to compile boost I get this error - C:\deps\boost_1_54_0>bootstrap.bat mingw
Building Boost.Build engine
'gcc' is not recognized as an internal or external command,
operable program or batch file.

Does anyone know what i am doing wrong as I do not want to botch it and try and carry on with this error?

Thanks

If it says it can't find gcc, then did you do nitrogenetics step 1.3? Which is
Add MinGW bin folder to your PATH environment variable (C:\MinGW\bin if you used installer defaults)

Ron
hero member
Activity: 924
Merit: 1005
Product Marketing & Promotion / Software Developer
Hi everyone, I have followed this tutorial word for word but everytime I try to compile boost I get this error - C:\deps\boost_1_54_0>bootstrap.bat mingw
Building Boost.Build engine
'gcc' is not recognized as an internal or external command,
operable program or batch file.

Does anyone know what i am doing wrong as I do not want to botch it and try and carry on with this error?

Thanks
full member
Activity: 238
Merit: 100
This may be a stupid question, but when I make modifications to the source, which make do I need to run?  The Qt make, or the mingw make?  I've been doing both as the Qt make doesn't seem to pickup non-qt source changes.

Also, it is not picking up Qt and Mingw static libraries (ie. I'm having to redistribute them).  Where do I point the gcc to incoporate them in the exe?  -static in LDFLAGS doesn't seem to do it (at least not alone).
sr. member
Activity: 260
Merit: 251
I remember that I had some sort of issue with the 0.8.99 version? I think it didn't like my block chain and insisted I reload all 246,000 of them, or maybe it wanted to "resync" them, whatever that means? Which took 24 hours on my system Huh Not sure, but using 0.8.2 or 0.8.3 was much better. I actually think 0.8.2 or 0.8.3 are "better" than 0.8.1, which is where I began.

I don't think the 0.8.99 version from github is a "final" version ready for "consumption"? I use both
https://sourceforge.net/projects/bitcoin/ download button
https://sourceforge.net/projects/bitcoin/files/latest/download?source=dlp which is 0.8.3 or
some other github choice, such as
https://github.com/bitcoin/bitcoin/tree/v0.8.3 you may have to "prowl" around the branches and tags tabs and fork->clone various until you find one with a version of 0.8.3 (in clientversion.h)

I find that selecting an 0.8.2 gets an 0.8.0 etc. Maybe it's me? I don't know.

Note that the layout from the sourceforge download is slightly different, but the general pattern is the same, so the directory where bitcoin-qt.pro is where one compiles from.

All that I do is make sure my 7 paths are correct in the .pro, then add the missing directory in the makefiles it produces and it compiles.

Compiling all of the sources takes ~15 minutes or so for bitcoind or bitcoin-qt on my system. If I am just changing a few files, much faster ~1 or so for one or two compiles and a "link" as it were.

Hope this helps

Ron
newbie
Activity: 10
Merit: 0
Hello wsmith?

From what you describe, it seems you are at nitrogenetics's step 4.3, where he says and I quote:

"Compiling with UPNP support will require miniupnpc libraries. See: http://miniupnp.tuxfamily.org/files/
Qt (QtCore4.dll QtGui4.dll QtNetwork4.dll) and MinGW (libgcc_s_dw2-1.dll and libstdc++-6.dll) libraries will need to be distributed along with the executable."

As a first approximation, have you tried "exposing" those above mention 5 dlls to bitcoin-qt at run time?

But as I said in message #41,
https://bitcointalksearch.org/topic/m.2177060

As qmake "concocts" makefile.release/debug from bitcoin-qt.pro, the output to the DOS screen suggests that it is turning UPNP on and off and on...

Remember that every time you run qmake on bitcoin-qt.pro it will overwrite any changes you make to makefile.release/debug! Unless you squirrel them away somewhere Smiley

Have you really editted bitcoin-qt.pro to reflect the paths on all 7 lines as per step 4.2? 3 boost lines, 2 BerkeleyDB lines and 2 openssl lines? Note that this file also has long lines that are 2K+! And did you comment out the code suggested on line 112? More like 117 or so on mine!

Hope this helps.

As an addendum to message #41, I have had success in running bitcoind & bitcoin-qt with a wallet.dat file that may now have any name and be in any directory! It is no longer tethered to the data directory! And I have a bitcoin-qt splash screen that "Stands up for itself" and isn't "stepped on" by any passing window or pop-up!  Grin

(Shameless plug) See
https://bitcointalksearch.org/topic/bitcoin-qt-splash-screen-now-a-top-screen-252539 and
https://bitcointalksearch.org/topic/walletdat-renamed-to-any-filename-in-any-location-for-bitcond-bitcoin-qt-240119

Ron


Well, I'm getting closer thanks to your help, Ron, unfortunately it seems to be one thing after another with this program. :S

Adding the .dlls solved my entry point issue, however, now when I try to run, I get the message that bitcoin-qt.exe has stopped working.

Error details:

 Problem Event Name:   BEX
  Application Name:   bitcoin-qt.exe
  Application Version:   0.8.99.0
  Application Timestamp:   51df9173
  Fault Module Name:   StackHash_0a9e
  Fault Module Version:   0.0.0.0
  Fault Module Timestamp:   00000000
  Exception Offset:   00fb38d0
  Exception Code:   c0000005
  Exception Data:   00000008
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:   1033
  Additional Information 1:   0a9e
  Additional Information 2:   0a9e372d3b4ad19135b953a78882e789
  Additional Information 3:   0a9e
  Additional Information 4:   0a9e372d3b4ad19135b953a78882e789

I did some research, and apparently this is caused by a buffer overflow, triggering windows data execution prevention to stop the program?

I tried adding bitcoin-qt.exe to the DEP exception list, but windows wouldn't let me, saying bitcoin MUST run with DEP enabled.

So I tried turning off DEP completely (temporarily), same error.

And yes, I did recompile bitcoin and try again after the first time I got the error.  Is there some kind of workaround for this? All the threads and Q/As I find usually stop at "add program x to DEP ignore list".
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Isn't it time to explore a native 64-bit version? I remember with wxwidgets that a 64-bit version was built for Windows for Solidcoin.
sr. member
Activity: 260
Merit: 251
Hello wsmith?

From what you describe, it seems you are at nitrogenetics's step 4.3, where he says and I quote:

"Compiling with UPNP support will require miniupnpc libraries. See: http://miniupnp.tuxfamily.org/files/
Qt (QtCore4.dll QtGui4.dll QtNetwork4.dll) and MinGW (libgcc_s_dw2-1.dll and libstdc++-6.dll) libraries will need to be distributed along with the executable."

As a first approximation, have you tried "exposing" those above mention 5 dlls to bitcoin-qt at run time?

But as I said in message #41,
https://bitcointalksearch.org/topic/m.2177060

As qmake "concocts" makefile.release/debug from bitcoin-qt.pro, the output to the DOS screen suggests that it is turning UPNP on and off and on...

Remember that every time you run qmake on bitcoin-qt.pro it will overwrite any changes you make to makefile.release/debug! Unless you squirrel them away somewhere Smiley

Have you really editted bitcoin-qt.pro to reflect the paths on all 7 lines as per step 4.2? 3 boost lines, 2 BerkeleyDB lines and 2 openssl lines? Note that this file also has long lines that are 2K+! And did you comment out the code suggested on line 112? More like 117 or so on mine!

Hope this helps.

As an addendum to message #41, I have had success in running bitcoind & bitcoin-qt with a wallet.dat file that may now have any name and be in any directory! It is no longer tethered to the data directory! And I have a bitcoin-qt splash screen that "Stands up for itself" and isn't "stepped on" by any passing window or pop-up!  Grin

(Shameless plug) See
https://bitcointalksearch.org/topic/bitcoin-qt-splash-screen-now-a-top-screen-252539 and
https://bitcointalksearch.org/topic/walletdat-renamed-to-any-filename-in-any-location-for-bitcond-bitcoin-qt-240119

Ron
newbie
Activity: 10
Merit: 0
So, I'm almost there, but not quite.

I got the bitcoin-qt.exe file in the release folder, like I'm supposed to.  However, when I attempted to run it, I got a "qtcore4.dll" is missing error message.  Easy enough...I downloaded qtcore4.dll, put it in the system 32 folder, and ran a command line with " regsvr32 qtcore4.dll ".  I then got an error message that the .dll might not be compatible with my version of windows.  I tried the bitcoin .exe again anyway, and I got a different error message.  This time I got "The procedure entry point _Z17qt_message_output9QtMsgTypePKc could not be located in the dynamic link library QtCore4.dll".

Can anyone help me out here? I'm using 64-bit windows 7, by the way.

Any advice would be very much appreciated.  Honestly I'm amazed I got this far on my own. Tongue

Hello ?

See message #41 (above) in this thread. Been there done that, fixed. Basically one corrects the Makefile.Release and Makefile.Debug that bitcoin-qt.pro produce so that those files are visible at link time.

Ron

Hello Ron.  Thanks for the reply.

Sorry for the trouble.  I skimmed your post the other day while looking over this thread, I guess I missed the line about qtcore4, so I thought it didn't relate to my problem. Tongue

I edited the makefile.debug and .release files like your post instructed, and rebuilt the .exe, unfortunately it doesn't seem to have solved my problem.  I'm pretty stumped since everything about this error has said the same thing you have, that it's a simple directory error.  My qt/4.8.4/bin directory has qtcore4 sitting right there, and my makefile points to it now, so I don't understand why it's still giving me the entry point error.  I even temporarily removed qtcore4 from the bin directory just to see if it would have any effect, and it didn't.  Could the bitcoin program still be looking for qtcore4 in the wrong place, somehow?

Hello ?

Since you are redoing the linking process, with more libraries (dlls\'s, etc.) available, you should delete the bitcoin-qt.exe at least, to force it to recreate it. And not knowing how makefile.release nor makefile.debug really work, I would delete all the build/*.o object files to really make it do it from the top, as it were.

Did you notice that the makefile.release & .debug that bitcoin-qt.pro produces creates lines that are longer than 2K (2048) characters! Can you editor handle that! If not you need to break up those lines with the usual \
type stuff.

Have you successfully created a bitcoind.exe release and debug using nitrogenetics info, first? If not, you need to do that in order to have all the libraries and have them in view for makefile.release or .debug

Step 3.1 for the levelDB code is important, and step 4.2, creating all the boost, bdb & openssl include and library paths for the bitcoin-qt creation process.

Hope this helps...

Ron


Hello again Ron. Cheesy

Okay, so, in order to eliminate the possibility of stupid mistakes, I backed up all the way to the beginning, and started from scratch.  Double and triple-checked that directory paths were correct, and that I was accurately following nitrogenetics'  directions.  bitcoind.exe was created successfully, and all the dependencies were extracted and compiled properly.  Start to finish, no error messages.

However, I am STILL getting the message that the procedure entry point for QtCore4.dll can't be found, when I attempt to run bitcoin-qt.exe.  And I am friggin' stumped.

I'm using QT Creator to edit the files...I would think that editor would be able to handle the long lines of code you mentioned.  Do you really think that's what could be causing my issue?  I would think that would cause compile errors, not such a specific .dll error.
Pages:
Jump to: