Bitcoin Forum
May 23, 2024, 11:56:48 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Make MinGw Bitcoin Src  (Read 2201 times)
Ninazu (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0



View Profile
March 14, 2013, 05:29:49 AM
 #1

Камнями не бросать! До этого не сталкивался с MinGw.
Cкачал сорцы и компоненты.
Quote
btc_0.8.0
boost_1_53_0 (mgw47-mt-sd-1_53)
db-5.3.21.NC
openssl-1.0.1e
mingw 0.5b-20120426-1
MAKE = /c/MinGW/bin/mingw32-make.exe
PATH + c:\MinGW\msys\1.0\bin;c:\MinGW\bin

После часика танца с бубном и вычитывания гугла. Скомпилировал все библиотеки и настроил сборку.
С OpenSSL и Boost проблем почти не было. А вот с Berkeley DB пришлось повозиться. Хоть в конечном итоге созбать библиотеки получилось, но видимо не до конца. Пробовал несколько версий, результата не дало.
Собсвтенно ошибка сама
Code:
C:\BITCOIN>make -f makefile.mingw
g++ -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parame
ter -g -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE
_IPV6=1 -I/c/BITCOIN/leveldb/include -I/c/BITCOIN/leveldb/helpers -I"/c/BITCOIN"
 -I"/usr/local/include" -Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-awa
re -o bitcoind.exe -L"/c/BITCOIN/leveldb" -L"/usr/local/lib" leveldb/libleveldb.
a obj/alert.o obj/version.o obj/checkpoints.o obj/netbase.o obj/addrman.o obj/cr
ypter.o obj/key.o obj/db.o obj/init.o obj/irc.o obj/keystore.o obj/main.o obj/ne
t.o obj/protocol.o obj/bitcoinrpc.o obj/rpcdump.o obj/rpcnet.o obj/rpcmining.o o
bj/rpcwallet.o obj/rpcblockchain.o obj/rpcrawtransaction.o obj/script.o obj/sync
.o obj/util.o obj/wallet.o obj/walletdb.o obj/hash.o obj/bloom.o obj/noui.o obj/
leveldb.o obj/txdb.o -l leveldb -l memenv -l boost_system-mgw47-mt-sd-1_53 -l bo
ost_filesystem-mgw47-mt-sd-1_53 -l boost_program_options-mgw47-mt-sd-1_53 -l boo
st_thread-mgw47-mt-sd-1_53 -l boost_chrono-mgw47-mt-sd-1_53 -l db_cxx -l ssl -l
crypto -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell3
2 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l ms
wsock -l shlwapi
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../libdb_cxx.a(os_pid.o):os_pid.c:(.
text+0x24): undefined reference to `_imp__pthread_self'
collect2.exe: ошибка: выполнение ld завершилось с кодом возврата 1
make: *** [bitcoind.exe] Error 1



giv
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
March 14, 2013, 06:28:09 AM
 #2

Если владеешь линуксом, собирай кросскомпиляцией под линуксом - это реально проще. У меня есть скрипты для кросскомпиляции https://github.com/VirtualDestructor/bitcoin-qt-i2p. Файлы 1.env-setup.sh, 2.build-deps.sh, 3.build-linux-mingw.sh.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
Ninazu (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0



View Profile
March 14, 2013, 02:46:41 PM
 #3

Спасибо! Качаю Убунту! Поставлю на виртуалку. Хоть опыта не особо, но думаю справлюсь с MinGW же подружился как-то) Хотя впервые с ним столкнулся вчера)
giv
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
March 14, 2013, 05:29:18 PM
 #4

Тогда после установки линукса, ставь mingw32 командой
Code:
sudo apt-get install mingw32
1 и 2 скрипт нужно запускать только при первой компиляции, все последующие (пере)сборки можно делать только скриптом 3.
1 и 2 скрипт пойдут без изменений, а 3 придется немного допилить, или повторять мою структуру каталогов.
Мои скрипты ищут исходники в ${WORKSPACE}/bitcoin-qt/src, где ${WORKSPACE} - это директория, где лежат скрипты.
Результаты работы первых двух скриптов кладутся в ${WORKSPACE}/dependencies.
Результаты 3-его (т.е. сами bitcoin-qt.exe и bitcoind.exe) кладутся в ${WORKSPACE}/release.
Еще в 3 скрипте можно использовать многопоточную компиляцию, что сильно ускоряет сборку на многоядерных процессорах
Code:
./3.build-linux-mingw.sh --threads=<n>
где n - количество потоков (обычно = числу ядер). Но многопоточная компиляция жрет много памяти, так что используй осторожно.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
Ninazu (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0



View Profile
March 15, 2013, 02:07:33 AM
Last edit: March 15, 2013, 04:01:45 AM by Ninazu
 #5

Уф! К линуксу еще привыкнуть нужно)

Запустилось с второй попытки. Первая почему-то оказалась неудачной. Удалил папку, продел все шаги заново. Запустилось.
Рад как слон!) Спасибо!
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 19, 2013, 07:05:11 PM
 #6

Спасибо и от меня. Действительно самый простой, и главное безотказно работающий способ.
Уважаемый giv. А для компиляции под win64 скрипты реально приспособить? Вот этот комментарий в первом скрипте #ENABLE_PLATFORMS=("mingw32 mingw64 linux64") - удачная попытка была?
giv
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
June 19, 2013, 07:48:09 PM
 #7

Основу этих скриптов я стянул у какого-то форка, когда сам пытался собрать под винду. Сейчас даже не вспомню с какого. Поэтому скрипты, строго говоря, не мои, я их немного пере/доделал под свои нужды.
Строка ENABLE_PLATFORMS=("mingw32 mingw64 linux64") была в оригинале. Поскольку мне нужна была только mingw32 платформа, остальные я закомментировал. Теоретически под Mingw64 собрать можно, должно быть все аналогично Mingw32, но я не пробовал. Я решил не заморачиваться на 64-битную винду, т.к. даже разработчики оригинального биткоина релизят бинарники только для х32 винды.

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!