За исключением зависимости
secp256k1 всё
собралось. Рабочую либу
secp256k1.lib для
MSVC2013 нашёл в недрах
NuGet-а, т.е. кто-то её всё-таки умеет собирать, но у меня ни как не получилось. Было б классно, если б кто-то из местных гуру помог её скомпилировать.
В оригинальных исходниках поправил следующее:
src\leveldb\db\c.cc
- #include <unistd.h>
+ #ifndef _MSC_VER
+ #include <unistd.h>
+ #endif
src\leveldb\db\db_iter.cc
src\qt\winshutdownmonitor.h
- #include <windef.h> // for HWND
- static void registerShutdownBlockReason(const QString& strReason, const HWND& mainWinId);
src\qt\winshutdownmonitor.cpp
- void WinShutdownMonitor::registerShutdownBlockReason(const QString& strReason, const HWND& mainWinId)
- {
- typedef BOOL (WINAPI *PSHUTDOWNBRCREATE)(HWND, LPCWSTR);
- PSHUTDOWNBRCREATE shutdownBRCreate = (PSHUTDOWNBRCREATE)GetProcAddress(GetModuleHandleA("User32.dll"), "ShutdownBlockReasonCreate");
- if (shutdownBRCreate == NULL) {
- qWarning() << "registerShutdownBlockReason: GetProcAddress for ShutdownBlockReasonCreate failed";
- return;
- }
-
- if (shutdownBRCreate(mainWinId, strReason.toStdWString().c_str()))
- qWarning() << "registerShutdownBlockReason: Successfully registered: " + strReason;
- else
- qWarning() << "registerShutdownBlockReason: Failed to register: " + strReason;
- }
src\qt\bitcoin.cpp
- WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("Bitcoin Core didn't yet exit safely..."), (HWND)app.getMainWinId());
src\qt\bitcoin_locale.qrc
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/translations">
<file alias="en">locale/bitcoin_en.qm</file>
<file alias="ru">locale/bitcoin_ru.qm</file>
</qresource>
</RCC>
С
winshutdownmonitor конечно радикально получилось, но как ни странно без него работает. Хотелось бы чтоб кто-нибудь помог сделать правку через условную компиляцию, как то же оно должно работать в Окнах. Ещё было бы интересно зачистить варнинги:
2>sync.obj : warning LNK4221: ▌ЄюЄ Їрщы юс·хъЄр эх юяЁхфхы хЄ ъръшх-ышсю Ёрэхх эхюяЁхфхыхээ√х юЄъЁ√Є√х ёшьтюы√, яю¤Єюьє юэ эх сєфхЄ шёяюы№чютрЄ№ё эшъръшьш юяхЁрЎш ьш ъюьяюэютъш, юсЁр∙р■∙шьшё ъ ¤Єющ сшсышюЄхъх
6>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): warning MSB8017: A circular dependency has been detected while executing custom build commands for item "build\bitcoin.moc". This may cause incremental build to work incorrectly.
6>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): warning MSB8017: A circular dependency has been detected while executing custom build commands for item "build\bitcoinamountfield.moc". This may cause incremental build to work incorrectly.
6>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): warning MSB8017: A circular dependency has been detected while executing custom build commands for item "build\overviewpage.moc". This may cause incremental build to work incorrectly.
6>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): warning MSB8017: A circular dependency has been detected while executing custom build commands for item "build\rpcconsole.moc". This may cause incremental build to work incorrectly.
6>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): warning MSB8017: A circular dependency has been detected while executing custom build commands for item "build\intro.moc". This may cause incremental build to work incorrectly.
6>d:\soft\cointest\btc2\src\qt\walletmodel.cpp(535): warning C4717: WalletModel::UnlockContext::CopyFrom: рекурсия на всех путях выполнения, функция вызовет переполнение стека
6>d:\soft\cointest\btc2\src\qt\walletmodel.h(174): warning C4717: WalletModel::UnlockContext::operator=: рекурсия на всех путях выполнения, функция вызовет переполнение стека
Зависимости
gmp и
protobuf собирал как написано в их доках, остальные как в
Нове. Проверял сборку только для
Release|x64.