日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

visual studio 2017 和qt 编译 bitcon源代码

發(fā)布時(shí)間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 visual studio 2017 和qt 编译 bitcon源代码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

visual studio 2017?

qt 5.7.1(別人已經(jīng)編譯好的靜態(tài)庫,為什么用別人編譯好的,自己編譯老是編譯錯(cuò)誤,?)

1. 安裝vcpkg。將應(yīng)用程序內(nèi)的lib編譯成功。設(shè)置編譯選項(xiàng)為MTD哦。

用vcpkg安裝這些:

libevent:x64-windows-static

openssl:x64-windows-static

zeromq:x64-windows-static

berkeleydb:x64-windows-static

secp256k1:x64-windows-static

leveldb:x64-windows-static

有個(gè)地方需要注意,在項(xiàng)目的vcproj文件中加入這個(gè)屬性:vs編譯的時(shí)候就會(huì)自動(dòng)尋找vcpkg安裝的目錄:
?<VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-static</VcpkgTriplet>
? ? <VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>

?

再也不用自己手動(dòng)去指定include目錄,lib目錄,和輸入lib文件了。

2. 編譯bcd,bc-cli項(xiàng)目。

3.? 編譯帶qt界面的bitcoin-qt。

這里主要是安裝vs qt 插件和加入qt庫的鏈接。

a.?安裝vs qt 插件,記得一定要啟動(dòng)哦,別弄成禁用(在vs的擴(kuò)展更新里面安裝)

?

b. 下載別人已經(jīng)編譯好的qt庫

https://www.npcglib.org/~stathis/blog/precompiled-qt4-qt5/

選Qt5 v5.7.1 (MSVC2015)。

c. 下載完后選擇static靜態(tài)庫。我的是x64位的。然后為什么動(dòng)態(tài)庫不行呢,因?yàn)樵蹅兊捻?xiàng)目都是MTD的鏈接方式,而這里面static靜態(tài)庫是MTD編譯出來的。

d. 在vs里面指定靜態(tài)庫的路徑,庫的輸入里面默認(rèn)是這幾個(gè):

qtmain.lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib

e. 發(fā)現(xiàn)有編譯錯(cuò)誤。將宏注釋掉即可:QT_INIT_METAOBJECT , QT_WARNING_PUSH ,QT_WARNING_DISABLE_DEPRECATED

f.?發(fā)現(xiàn)Qt5Core.lib鏈接錯(cuò)誤,因?yàn)檫€缺少別的qt庫,不著急,再加上

Qt5PlatformSupportd.lib
qminimald.lib
qoffscreend.lib
qwindowsd.lib
qtfreetyped.lib
qtharfbuzzngd.lib
qtpcred.lib

OK。 bitcoin-qt終于出來了。

對(duì)了:有個(gè)鏈接問題得說明一下:

. int __cdecl qInitResources_bitcoin_locale(void)" (?qInitResources_bitcoin_locale@@YAHXZ),該符號(hào)在函數(shù) "int __cdecl GuiMain(?

. int __cdecl qInitResources_bitcoin(void)" (?qInitResources_bitcoin@@YAHXZ),該符號(hào)在函數(shù) "int __cdecl GuiMain(int,char * * const)

這是因?yàn)閎itcoin.cpp里面的兩行代碼:

? ? Q_INIT_RESOURCE(bitcoin);
? ? Q_INIT_RESOURCE(bitcoin_locale);

qt把資源文件寫到代碼中,函數(shù)qInitResources_bitcoin和qInitResources_bitcoin_locale的實(shí)現(xiàn)就是根據(jù)bitcoin.qrc

和bitcoin_locale.qrc生成出來的,所以需要把這兩個(gè)文件加入到項(xiàng)目中。(這兩個(gè)文件是qt編輯的),而后vs會(huì)生成qrc_bitcoin.cpp和qrc_bitcoin_locale.cpp。這里面就有上面兩個(gè)函數(shù)的實(shí)現(xiàn)了。

?

對(duì)了,需要在項(xiàng)目中加入moc文件的路徑哦,不然vs找不到。

這個(gè)鏈接也可供參考:https://blog.csdn.net/qq_16149777/article/details/78744074

總結(jié):把靜態(tài)庫、動(dòng)態(tài)庫搞清楚哦,另外vs的設(shè)置,inlcude路徑、lib路徑這些搞清楚。

另外提個(gè)事“如何判斷.lib是靜態(tài)庫還是導(dǎo)入庫”?

答:VS 路徑C:\Program Files\Microsoft Visual Studio 10.0\VC\bin”?自帶的一個(gè)工具 -?lib.exe:?運(yùn)行 lib /list hello.lib
如果輸出: hello.obj,則是靜態(tài)庫
如果輸出: hello.dll,則是動(dòng)態(tài)庫的導(dǎo)入庫。

另外我要把MD,MTD搞清楚,別稀里糊涂的。

總結(jié)

以上是生活随笔為你收集整理的visual studio 2017 和qt 编译 bitcon源代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。