前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言情怀--第74期 区块链技术-比特币源码下载及编译环境配置

Golang语言情怀--第74期 区块链技术-比特币源码下载及编译环境配置

作者头像
李海彬
发布2022-05-25 13:19:45
1.3K0
发布2022-05-25 13:19:45
举报
文章被收录于专栏:Golang语言社区Golang语言社区

本期我们继续学习比特币的发布流程,先把源码clone到本地;同时我已经fork了一份代码,地址:https://github.com/Golangltd/bitcoin

本期主要是分析下目录结构,clone后目录如下图

目前我使用的win10系统,编译环境我们就暂时使用微软的编辑器来编译;首先下载visual studio,下载地址:https://visualstudio.microsoft.com/zh-hans/vs/  下载社区版本即可。

下载安装需要一段时间,下载安装类库我们选择C++即可;具体不懂可以群里交流。

在如上图的红框中我们,有个README.md文件,里面详细介绍了如何配置msvc环境。

代码语言:javascript
复制
使用Visual Studio构建比特币核心
========================================
介绍
---------------------
可以在“build\u msvc”目录中找到使用“msbuild”或Visual Studio构建比特币核心的解决方案和项目文件。该构建已使用Visual Studio 2019进行了测试(使用早期版本的Visual Studio进行的构建不应正常工作)。
要从命令行构建比特币核心,只需安装Visual Studio构建工具组件即可。
使用Visual Studio构建是基于Linux的[交叉编译器构建](../doc/build-windows.md)的替代方法。
先决条件
---------------------
要构建[依赖项](../doc/dependentials.md)(除了[Qt](#Qt)),
默认方法是使用[vcpkg](https://docs.microsoft.com/en-us/cpp/vcpkg)Microsoft软件包管理器:
1.【安装】(https://vcpkg.io/en/getting-started.html)vcpkg。
2.默认情况下,vcpkg为每个包生成'release'和'debug'版本。
为了节省构建时间和磁盘空间,可以跳过“debug”构建(示例使用PowerShell):
动力壳
添加内容-路径“vcpkg\triplets\x64 windows static.cmake”-值“set(vcpkg\u BUILD\u TYPE release)”
Qt
---------------------
要使用GUI构建比特币核心,需要静态构建Qt。
1、从下载Qt源代码的单个ZIP存档https://download.qt.io/official_releases/qt/(例如,['qt-everywhere-opensource-src-5.15.3.zip`](https://download.qt.io/official_releases/qt/5.15/5.15.3/single/qt-everywhere-opensource-src-5.15.3.zip)),并将其展开到专用文件夹中。以下说明假定此文件夹为“C:\dev\qt source”。
2、打开“针对VS 2019的x64 Native Tools命令提示符”,输入以下命令:
cmd命令
cd C:\dev\qt源
mkdir生成
cd构建
..\configure-release-silent-opensource-confirm license-opengl desktop-static-static runtime-mp-qt zlib-qt pcre-qt libpng-nomake examples-nomake tests-nomake tools-no angle-no dbus-no gif-no gtk-no ico-no icu-no libjpeg-no libudev-no sql sqlite-no sql odbc-no sqlite-no vulkan-skip qt3d-skip qtactiveqt-skip qtandoridextras-skip qtcharts-skip qtconnectivity-skip qt连接qtdatavis3d-跳过qtdeclarative-跳过doc-跳过qtdoc-跳过qtgamepad-跳过qtgraphicaleffects-跳过qtimageformats-跳过qtlocation-跳过qtlottie-跳过qtmacextras-跳过qtmultimedia-跳过qtnetworkauth-跳过qtpurchasing-跳过qtquick3d-跳过qtquickcontrols-跳过qtquickcontrols2-跳过qtquicktimeline-跳过qtremoteobjects-跳过qtscript-跳过qtscxml-跳过qtsensors-跳过qtserialbus-跳过qtserialbusqtserialport-跳过qtspeech-跳过qtsvg-跳过qtvirtualkeyboard-跳过qtwayland-跳过qtwebchannel-跳过qtwebengine-跳过qtwebglplugin-跳过qtwebsockets-跳过qtwebview-跳过qtx11extras-跳过qtxmlpatterns-无openssl-无feature BealerManagement-无feature printdialog-无feature printer-无feature printpreviewdialog-无feature printpreviewwidget-无feature sql-无feature sqlmodel-无要素文本浏览器-无要素文本MarkdownWriter-无要素文本ODFWriter-无要素xml-前缀C:\Qt\u static
nmake公司
nmake安装
可以用['jom`]加快建筑速度(https://wiki.qt.io/Jom),是“nmake”的替代品,它使用所有CPU核。
要构建不带Qt的比特币核心,请卸载或禁用“比特币Qt”、“libbitcoin\u Qt”和“test\u Bitcoin-Qt”项目。
建筑物
---------------------
1、使用Python生成`*。来自Makefile的vcxproj`
PS>py-3 msvc自动生成。py公司
2、可选步骤是调整“build\u msvc”目录和“common”目录中的设置。初始化。vcxproj`文件。此项目文件包含所有项目通用的设置,例如运行时库版本和目标Windows SDK版本。还可以设置Qt目录。要指定静态Qt包目录的非默认路径,请使用“QTBASEDIR”环境变量。
3、要使用Visual Studio 2019工具链从命令行进行构建,请使用:
cmd命令
msbuild-属性:Configuration=Release-maxCpuCount-详细信息:最小比特币。sln公司
或者,打开“build\u msvc/bitcoin”。Visual Studio 2019中的sln文件。
安全
---------------------
[基址随机化](https://docs.microsoft.com/en-us/cpp/build/reference/dynamicbase-use-address-space-layout-randomization?view=msvc-160)用于使比特币核心更加安全。使用“build\u msvc”进程构建比特币时,可以通过编辑“common”禁用基址随机化。初始化。vcproj`将“RandomizedBaseAddress”从“true”更改为“false”,然后重建项目。
要检查“bitcoind”是否启用或禁用了“RandomizedBaseAddress”,请运行
.\dumpbin。exe/headers src/bitconid。exe文件
如果已启用,则在输出中,“Dynamic base”将列在“可选标头值”下的“DLL特性”中,如下所示
8160 DLL特性
高熵虚拟地址
动态基础
NX兼容

以上就是需要配置编译环境,我目前的VS版本是2022版本,文字没有办法表达配置的过程,我会近期出配置编译环境的视频,给大家实战下配置编译环境的过程,本期我们就暂时到这里,下期我们开始正式编译源码。

兄弟们,兴趣是最好的老师;只争朝夕,不负韶华!加油!


参考资料:

Go语言中文文档

http://www.golang.ltd/

Go语言官方文档

https://golang.google.cn/

Golang语言情怀

ID:wwwGolangLtd

 www.Golang.Ltd

游戏服务器架构丨分布式技术丨大数据丨Go语言学习

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言情怀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档