Pages:
Author

Topic: Собрал 0.13.0 из исходников - page 8. (Read 36760 times)

hero member
Activity: 1232
Merit: 503
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Интересно, спасибо. Еще хотелось бы знать какого уровня должен быть навык программирования чтобы не просто повторить, но и понять этапы.

У меня опыт программирования на с++ 16 лет, а общий опыт больше 20 лет. Но я не понимаю все этапы ((
hero member
Activity: 658
Merit: 502
Интересно, спасибо. Еще хотелось бы знать какого уровня должен быть навык программирования чтобы не просто повторить, но и понять этапы.
KU
newbie
Activity: 16
Merit: 0
Линуксовый наверное проще взять уже готовый бинарник. Там уже олл инклузив, только при запуске не забыть пути к конфигу указать. Wink

https://bitcoin.org/bin/bitcoin-core-0.13.1/bitcoin-0.13.1-x86_64-linux-gnu.tar.gz
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
А исходник их мастера слонировали?
Я рекомендую загружать исходники из ветки релизов.

да, с гитхаба
а какие еще варианты?

bitcoin-0.13.0 собрался, bitcoin-0.13.1 попробую еще раз, есть вариант подсунуть скомпилированные зависимости от 13.0, доложен тогда  собраться точно

а у вас размер файла bitcoin-qt.exe(0.13.0) какой получился? У меня на 43% больше от официального релиза - 43,887,920 байт

большая разница, видимо нехватает каких-то флагов оптимизации при сборке



С гитхаба можно качать по разному:
1. Склонировать мастер: git clone https://github.com/bitcoin/bitcoin.git
2. Скачать мастер: https://codeload.github.com/bitcoin/bitcoin/zip/master
3. Скачать релиз: https://github.com/bitcoin/bitcoin/archive/v0.13.1.zip (или любой другой https://github.com/bitcoin/bitcoin/releases)

Третий вариант самый предпочтительный.

В скомпилированном файле возможно зашиты дебаг пути всякие. Надо посмотреть, какие еще флаги есть у конфига.
Линуксовый bitcoind можно уменьшить командой "strip bitcoind" как тут написано: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md#notes
newbie
Activity: 36
Merit: 0
А исходник их мастера слонировали?
Я рекомендую загружать исходники из ветки релизов.

да, с гитхаба
а какие еще варианты?

bitcoin-0.13.0 собрался, bitcoin-0.13.1 попробую еще раз, есть вариант подсунуть скомпилированные зависимости от 13.0, доложен тогда  собраться точно

а у вас размер файла bitcoin-qt.exe(0.13.0) какой получился? У меня на 43% больше от официального релиза - 43,887,920 байт

большая разница, видимо нехватает каких-то флагов оптимизации при сборке

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
А исходник их мастера слонировали?
Я рекомендую загружать исходники из ветки релизов.
newbie
Activity: 36
Merit: 0

Собрать бинарики для винды можно так:

Для Win64
Code:
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev curl
cd depends
make HOST=x86_64-w64-mingw32 -j4

Quote
compiling .moc/release/moc_qabstractsocketengine_p.cpp
compiling .moc/release/moc_qhttpsocketengine_p.cpp
compiling .moc/release/moc_qsocks5socketengine_p.cpp
compiling .moc/release/moc_qtcpsocket.cpp
compiling .moc/release/moc_qudpsocket.cpp
compiling .moc/release/moc_qnativesocketengine_p.cpp
compiling .moc/release/moc_qsslsocket_openssl_p.cpp
compiling access/qftp.cpp
x86_64-w64-mingw32-ar -M < object_script.libQt5Network.Release
make[3]: выход из каталога «/home/user/bitcoin-0.13.1/depends/work/build/x86_64-w64-mingw32/qt/5.6.1-c2d426719c2/qtbase/src/network»
make[2]: выход из каталога «/home/user/bitcoin-0.13.1/depends/work/build/x86_64-w64-mingw32/qt/5.6.1-c2d426719c2/qtbase/src/network»
make[1]: выход из каталога «/home/user/bitcoin-0.13.1/depends/work/build/x86_64-w64-mingw32/qt/5.6.1-c2d426719c2/qtbase/src»
funcs.mk:242: ошибка выполнения рецепта для цели «/home/user/bitcoin-0.13.1/depends/work/build/x86_64-w64-mingw32/qt/5.6.1-c2d426719c2/qtbase/.stamp_built»
make: *** [/home/user/bitcoin-0.13.1/depends/work/build/x86_64-w64-mingw32/qt/5.6.1-c2d426719c2/qtbase/.stamp_built] Ошибка 2

не пошло блин
а параметр j помнится это кол-во потоков при компиляции?

.stamp_built - такого файла и нет в целевой папке:

Quote
~/bitcoin-0.13.1/depends/work/build/x86_64-w64-mingw32/qt/5.6.1-c2d426719c2/qtbase$ ls -la
итого 2928
drwxrwxr-x 16 user user    4096 ноя 23 02:10 .
drwxrwxr-x  6 user user    4096 ноя 23 01:55 ..
drwxrwxr-x  2 user user    4096 ноя 23 02:23 bin
-rwxrwxr-x  1 user user    1205 ноя 23 02:09 config.status
-rw-rw-r--  1 user user    4075 ноя 23 02:09 config.summary
drwxrwxr-x  9 user user    4096 ноя 23 01:55 config.tests
-rwxrwxr-x  1 user user  254234 ноя 23 01:55 configure
-rw-rw-r--  1 user user    3825 май 25 18:46 configure.bat
-rw-rw-r--  1 user user 2136576 июн  2 09:55 configure.exe
-rwxrwxr-x  1 user user  254235 май 25 18:46 configure.old
drwxrwxr-x  2 user user    4096 май 25 18:46 dist
drwxrwxr-x  4 user user    4096 май 25 18:46 doc
drwxrwxr-x 17 user user    4096 май 25 18:46 examples
-rw-rw-r--  1 user user    1958 май 25 18:46 header.BSD
-rw-rw-r--  1 user user     804 май 25 18:46 header.COMM
-rw-rw-r--  1 user user    1248 май 25 18:46 header.FDL
-rw-rw-r--  1 user user    1578 май 25 18:46 header.LGPL21
-rw-rw-r--  1 user user    1721 май 25 18:46 header.LGPL3
-rw-rw-r--  1 user user    1277 май 25 18:46 header.LGPL3-COMM
-rw-rw-r--  1 user user     936 май 25 18:46 header.LGPL-ONLY
drwxrwxr-x 18 user user    4096 июн  2 09:55 include
-rw-rw-r--  1 user user     521 май 25 18:46 INSTALL
-rw-rw-r--  1 user user    1196 май 25 18:46 LGPL_EXCEPTION.txt
drwxrwxr-x  5 user user    4096 ноя 23 13:18 lib
-rw-rw-r--  1 user user   22961 май 25 18:46 LICENSE.FDL
-rw-rw-r--  1 user user   35645 май 25 18:46 LICENSE.GPLv3
-rw-rw-r--  1 user user   26832 май 25 18:46 LICENSE.LGPLv21
-rw-rw-r--  1 user user    8178 май 25 18:46 LICENSE.LGPLv3
-rw-rw-r--  1 user user   32153 май 25 18:46 LICENSE.PREVIEW.COMMERCIAL
-rw-rw-r--  1 user user   72068 ноя 23 02:09 Makefile
drwxrwxr-x 96 user user    4096 ноя 23 02:09 mkspecs
drwxrwxr-x  7 user user    4096 ноя 23 02:10 plugins
drwxrwxr-x  5 user user    4096 ноя 23 02:08 qmake
-rw-rw-r--  1 user user       0 ноя 23 02:09 .qmake.cache
-rw-rw-r--  1 user user     128 май 25 18:46 .qmake.conf
-rw-rw-r--  1 user user    6460 май 25 18:46 qtbase.pro
-rw-rw-r--  1 user user      29 июн  2 09:55 .release-timestamp
drwxrwxr-x 22 user user    4096 ноя 23 02:09 src
-rw-rw-r--  1 user user       0 ноя 23 02:10 .stamp_configured
-rw-rw-r--  1 user user    3227 май 25 18:46 sync.profile
-rw-rw-r--  1 user user      41 май 25 18:46 .tag
drwxrwxr-x  8 user user    4096 май 25 18:46 tests
drwxrwxr-x  4 user user    4096 май 25 18:46 tools
drwxrwxr-x 13 user user    4096 май 25 18:46 util
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Поздравляю с победой! )))
Кстати я понял, что нетбинс это говно по сравнению с qt-creator.
В последний исходники тоже легко импортируются, но он реально на порядок быстрее парсит код.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
автоген надо было сразу после шага 8 делать как у меня описано.
Но это не принципиально. Можно и после сделать, когда ругнется, что конфигуре нету.
Вроде все правильно делаешь, доллжно собраться.

ЗЫ может глючило потому что из мастера клонировал? Для себя лучше из релиза качать все таки.
legendary
Activity: 1260
Merit: 1019
Начинаю заново.
И сразу сюда пишу что вижу

1) беру 0.13.1
Code:
wget https://github.com/bitcoin/bitcoin/archive/v0.13.1.tar.gz
качаем-качаем... трали-вали, короче скачалось
2016-11-01 12:13:29 (118 KB/s) - ‘v0.13.1.tar.gz’ saved [5952081/5952081]

2) распаковываем в bitcoin-0.13.1
ну, распаковал я не таром, а из гуёв правой клавишей мыши

3) а давай-ка опять проверим апгрейд системы сначала
Code:
sudo apt-get update
трали-вали Reading package lists... Done

Code:
sudo apt-get upgrade
трали-вали  0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Code:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
трали-вали  0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Code:
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
трали-вали  0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Code:
sudo add-apt-repository ppa:bitcoin/bitcoin
попросила нажать Enter, потом сказала что что-то импортировала

Code:
sudo apt-get update
трали-вали Reading package lists... Done  

Code:
sudo apt-get install libdb4.8-dev libdb4.8++-dev
говорит что и так последняя версия. я ж вчера ставил

Code:
sudo apt-get install libminiupnpc-dev
та же херня

Code:
sudo apt-get install libzmq3-dev
тоже уже сделано

Code:
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
тоже говорит что все стоит

Code:
sudo apt-get install libqrencode-dev
тоже последняя

Code:
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev curl
всё стоит.

ок, поехали в сам биткойн

Code:
cd bitcoin-0.13.1
cd depends
make HOST=x86_64-w64-mingw32 -j4
долго что-то жуём-жуём, какие-то блядские протобуферы компилируются (как я их ненавижу!) какой-то буст 1.59 фетчится...
ладно, пока отправлю пост, потом допишу.

Продолжаем...
Собралось что-то. Последние строчки в консоли:
Code:
Staging miniupnpc...
Postprocessing miniupnpc...
Caching miniupnpc...
copying packages: native_ccache native_comparisontool native_protobuf boost openssl libevent qrencode protobuf qt bdb miniupnpc
to: /home/amaclin/bitcoin-0.13.1/depends/x86_64-w64-mingw32

4)
Code:
cd ..
./configure --prefix=`pwd`/depends/i686-w64-mingw32

отвечает:
Code:
bash: ./configure: No such file or directory

Ну нету тут configure! кто-то автоген должен запустить. только когда? сейчас или раньше надо было?

5) запускаем автоген. может ему тоже параметры надо задавать для виндовс?
Code:
./autogen.sh

Отработал. Последние строчки
Code:
src/Makefile.am: installing 'build-aux/depcomp'
src/Makefile.am:454: warning: user target '.mm.o' defined here ...
/usr/share/automake-1.15/am/depend2.am: ... overrides Automake target '.mm.o' defined here
parallel-tests: installing 'build-aux/test-driver'

6) Снова конфигуре
Code:
./configure --prefix=`pwd`/depends/i686-w64-mingw32
что-то прочекал, многобукф, последние строчки вывода:
Code:
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Fixing libtool for -rpath problems.

7) Конец уже близко
Code:
make clean
Быстренько что-то сделал. Последние строчки
Code:
make[2]: Leaving directory '/home/amaclin/bitcoin-0.13.1/src'
make[1]: Leaving directory '/home/amaclin/bitcoin-0.13.1/src'
make[1]: Entering directory '/home/amaclin/bitcoin-0.13.1'
test -z "Bitcoin-Core.dmg bitcoin-0.13.1-win-setup" || rm -f Bitcoin-Core.dmg bitcoin-0.13.1-win-setup
rm -rf .libs _libs
rm -rf coverage_percent.txt test_bitcoin.coverage/ total.coverage/ qa/tmp/ cache/ Bitcoin-Qt.app
rm -rf qa/pull-tester/__pycache__
rm -f *.lo
make[1]: Leaving directory '/home/amaclin/bitcoin-0.13.1'

8 ) Ну и наконец
Code:
make
Жуёт пока... Отправляю пост, потом допишу

Продолжаем...
Неужели на этот раз получилось? Последние строки в консоли
Code:
make[2]: Leaving directory '/home/amaclin/bitcoin-0.13.1/src'
make[1]: Leaving directory '/home/amaclin/bitcoin-0.13.1/src'
make[1]: Entering directory '/home/amaclin/bitcoin-0.13.1'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/amaclin/bitcoin-0.13.1'

9) И последний шажок
Code:
make install
Что-то выдало на экран, ничего такого крамольного. Последние строчки
Code:
make[2]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/home/amaclin/bitcoin-0.13.1/depends/i686-w64-mingw32/lib/pkgconfig'
 /usr/bin/install -c -m 644 libbitcoinconsensus.pc '/home/amaclin/bitcoin-0.13.1/depends/i686-w64-mingw32/lib/pkgconfig'
make[2]: Leaving directory '/home/amaclin/bitcoin-0.13.1'
make[1]: Leaving directory '/home/amaclin/bitcoin-0.13.1'
Я уж собрался открывать шампусик по случаю победы разума над сарсапариллой...
Но...
Заглянул в каталог, куда должны свалиться экзешники... И что я вижу?

в каталоге ~/bitcoin-0.13.1/depends/x86_64-w64-mingw32/bin сиротливо лежит один файл event_rpcgen.py

в каталоге ~/bitcoin-0.13.1/depends/i686-w64-mingw32/bin - какие-то линуксовые сборки.
где, блеять мои экзешники?




Так, блядь, я понял где в этот раз налажал.
Инструкции для сборки w64 и w32 идут рядом
я случайно переключился на сборку i686
Начинаю заново. Я щас взвою.


1) Заново распаковал архив в свежую папку
2) cd bitcoin-0.13.1
3) ./autogen.sh
4) cd depends
5) make HOST=x86_64-w64-mingw32 -j4
Продолжение следует...
6) cd ..
7) ./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
8 ) make clean
9) make
Продолжение следует...
10) make install



Пойду напьюсь от радости.


legendary
Activity: 1260
Merit: 1019
Покажи точно по шагам, что ты делаешь. По методу: сделал в терминале - скопипастил сюда.
ЗЫ перед тем как делать make не забывай делать make clean если до этого для линукса собирал
ЗЗЫ я уже раз десять собрал и в убунте и в дебиане. Все пучком. Только для мака не могу собрать пока.

ты именно экзешник для венды собирал, да?

для линукса вчера собрал. теоретически, мне этого достаточно было бы, но венда мне удобнее
и в линуксе мне придется еще блокчейн скачивать и синхронизировать хотя бы в режиме тестнета

итак. вчера я собрал для линукса.
отличия были

1) в том, что ты советуешь
Code:
wget https://github.com/bitcoin/bitcoin/archive/v0.13.0.tar.gz
я брал последнюю из мастера
https://github.com/bitcoin/bitcoin/archive/master.zip

2) У тебя опечатка: написано sudo apt-get updgrade - тут разумеется буква d лишняя

3) запуск ./configure c параметрами не получится - сначала надо ./autogen.sh сделать

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Для линукса смог собрать по инструкции
Для венды - никак не хочет собираться
на этапе make выдает, что какой-то там std::mutex не знает

Code:
mutex in namespace std does not name a type

Убил уже два раза по полдня на эту тряхомудию.  Cry



Покажи точно по шагам, что ты делаешь. По методу: сделал в терминале - скопипастил сюда.

ЗЫ перед тем как делать make не забывай делать make clean если до этого для линукса собирал

ЗЗЫ я уже раз десять собрал и в убунте и в дебиане. Все пучком. Только для мака не могу собрать пока.
legendary
Activity: 1260
Merit: 1019
Для линукса смог собрать по инструкции
Для венды - никак не хочет собираться
на этапе make выдает, что какой-то там std::mutex не знает

Code:
mutex in namespace std does not name a type

Убил уже два раза по полдня на эту тряхомудию.  Cry

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
на голое тоже можно.
просто не все линукс любят на десктопе лицезреть.
я вот кстати вторую неделю пытаю разрабов как собрать на убунте для мака, но что-то пока результат нулевой ((
member
Activity: 84
Merit: 10
Quote
VirtualBox
А почему не на голое железо?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
kzv@ubuntu-512mb-sgp1-01:~/fork$ ldd ~/fork/bitcoind
        linux-vdso.so.1 =>  (0x00007ffc04979000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4dd8fd5000)
        libanl.so.1 => /lib/x86_64-linux-gnu/libanl.so.1 (0x00007f4dd8dd1000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4dd8bc8000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4dd88bf000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4dd86a9000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4dd82df000)
        /lib64/ld-linux-x86-64.so.2 (0x0000559f3d304000)
sr. member
Activity: 602
Merit: 291
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
После долгих мучений удалось скомпилировать "статическую" версию для линукса. В отличии от обычной, статичная будет работать и в разных дистрибутивах без дополнительных танцев с бубном установок библиотек - все библиотеки прилинкованы к исполняемому файлу!

Code:
cd depends
make clean
make
cd ..
./autogen.sh
./configure --enable-glibc-back-compat --prefix=`pwd`/depends/x86_64-pc-linux-gnu LDFLAGS="-static-libstdc++"
make clean
make
make install

Спасибо за помощь английской ветке, без них я бы сам точно не допер как это сделать... Подробности тут https://bitcointalksearch.org/topic/m.16455631  Smiley
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Краткий мануал как скомпилировать в нормальной IDE

1. Делаем с первого по восьмой шаги из стартового поста (только не для 13, а для 12 версии коры). В шаге 9, выполняем только скрипт "./autogen.sh"
2. Качаем и устанавливаем IDE Netbeans для линукса C/C++
wget http://download.netbeans.org/netbeans/8.2/final/bundles/netbeans-8.2-cpp-linux-x64.sh
sudo chmod 777 netbeans-8.2-cpp-linux-x64.sh
sudo ./netbeans-8.2-cpp-linux-x64.sh

3. Запускаем нетбинс, идем в меню File => New Project => C/C++ Project with Existing Sources
4. Выбираем папку с исходниками битка bitcoin-0.12.1 и жмем Next, потом Finish. Ждем, когда нетбинс скомпилирует все исходники.

Готово! Теперь можно пробовать что-то менять в комфортной среде разработки.


Pages:
Jump to: