bitcoin原始碼編譯vs2015

2021-08-18 16:54:00 字數 2586 閱讀 5325

先上編譯通過的**路徑 

內有五個專案,bitcoin-cli 、bitcoind、bitcoin-qt  、leveldb、test-bitcoin

其中 bitcoin-cli 、bitcoind、bitcoin-qt  、leveldb 編譯通過, test-bitcoin空專案暫時不搞了。

leveldb專案是靜態庫,給其它幾個專案用。

一、環境搭建:

位元幣原始碼的依賴庫包含openssl、berkeley db、boost、libevent 、protobuf 

、qt等第三方依賴庫, 本人編的是32位程式,注意

2. 安裝boost,我是自己下原始碼編譯的,頭檔案目錄c:\boost_1_66

3.安裝

berkeley db 頭檔案目錄c:\program files (x86)\oracle\berkeley db 12cr1 6.2.32\include,用到庫

libdb62.lib,

4.安裝protobuf ,頭檔案目錄d:\develop\protobuf-2.6.1\src,在qt相關的bitcoin-qt用到庫 libprotobuf.lib ,libprotoc.lib 

5.安裝libevent  ,頭檔案目錄c:\libevent2.1.8\include,用到庫 libevent.lib

6. 安裝qt5.6.3

二、**修改

首先編譯 bitcoind 

1. 檔案d:\solution\bitcoin\src\leveldb\db\c.cc 中

注掉//#include

2. 檔案 d:\solution\bitcoin\src\leveldb\db\db_iter.cc

修改  ssize_t 為 size_t

3. 檔案 d:\solution\bitcoin\src\leveldb\db\db_iter.cc 

127行 注掉  //void operator=(const dbiter&);

4. 檔案 d:\solution\bitcoin\src\leveldb\port\port_win.h   

注掉  //#define snprintf _snprintf

5. 檔案 d:\solution\bitcoin\src\cuckoocache.h          

刪除246行 template 關鍵字.

6. 檔案 d:\solution\bitcoin\src\net.cpp                   

2452  行 新增 大括號

{}   

7.  檔案 d:\solution\bitcoin\src\tinyformat.h    

187 , 188行把引用改為指標

8. 修改檔名,避免檔名衝突

\rpc\util.cpp       到            \rpc\util2.cpp  

rpc\util.h           到            rpc\util2.h

rpc\protocol.cpp   到        rpc\protocol2.cpp

rpc\protocol.h      到        rpc\protocol2.h

rpc\net.cpp       到           rpc\net2.cpp

再編譯 bitcoin-qt 有如下修改

1. 如 #include 帶 forms 路徑

改為#include

2. 如

#include 尾綴.moc

改為#ifndef qt_no_debug

#include

#else

#include

#endif 

3. 檔案 d:\solution\bitcoin\src\qt\bitcoin.cpp 中

注掉   

// q_init_resource(bitcoin_locale);

4. 修改檔名,避免檔名衝突

wallet\fees.h  到      wallet\fees2.h

wallet\fees.cpp  到  wallet\fees2.cpp

wallet\init.h    到     wallet\init2.h

wallet\init.cpp  到   wallet\init2.cpp

5.  .proto 生成 .h、.cc檔案,用工具protobuf

命令格式:

protoc --proto_path=e:/bitcoin/qt --cpp_out=e:/bitcoin/qt e:/bitcoin/qt/paymentrequest.proto

把生成的.h、.cc檔案新增到bitcoin-qt

大概就改了這麼多吧,有興趣的朋友可以直接下**試試,祝學習愉快!

位元幣原始碼的依賴庫包含openssl、berkeley db、boost、miniupnpc、qt等第三方依賴庫
https://github.com/tangqingli

10進製VS2進製

對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。乙個1000位 即10 999 以內的...

wireshark原始碼vs2008編譯

最近需要開發 wireshark 外掛程式,分析一套協議,於是首先要解決的問題就是如何在 windows 環境下編譯 wireshark 編譯過程中也借鑑了一些網上的資料,但是基本都有問題,在經歷無數次的失敗之後的摸索,最終在 wireshark 編譯成功。在編譯過程中需要一下軟體 visual s...

VS2013編譯python原始碼

系統 win10 手頭有個python模組,是用c寫的,想編譯安裝就需要讓python呼叫c編譯器。直接編譯發現使用的是vc9編譯,不支援c99標準 兩個槽點 為啥vs2008都還不支援c99?手頭這個c 為啥不好好寫?anyway,此時兩個想法,乙個是改c原始碼,另乙個是自行用vs2013編譯乙個...