❶ ubuntu内核编译问题
title 随便写
root (hd0,4)/ubuntu/disks
kernel /boot/vmlinuz-2.6.27-2-generic root=UUID=40586D90586D860E loop=/ubuntu/disks/root.disk ro quiet splash
initrd /boot/initrd.img-2.6.27-2-generic
注意:两个内核文件都可以在/boot目录下看到,我猜是:
/boot/vmlinuz-2.6.27-2-generic和
/boot/initrd.img-2.6.27-2-generic
如果不是,改成正确的名字。错了也没关系啊,一个内核进不去,重启之后从另一个内核进去不就行了。
❷ 如何在开发板挂载在ubuntu目录下进行编译
没用的,你的新硬盘是挂在/home下的,软件仍然在/usr目录下,还会出现磁盘不够的。可以把一些软件移到/home下,然后在/home下做个链接指向/usr
❸ 如何在Ubuntu平台下编译比特币bitcoin客户端
很多朋友都知道如何在linux平台如何编译比特币程序,但是,到了windows平台,
就会感觉到无从下手. 其实, 比特币程序是跨平台的.
你要编译windows版的比特币程序,基本上有两种方法,一种是在linux平台
(推荐ubuntu 13.10)通过交叉编译的方法来编译.另外一种,就是直接在windows平台编译.
我想,你既然要在windows平台使用,我就详细介绍一下如何在windwows平台编译比特币程序.
我的平台:windows7
第一步:安装变编译环境QT和MINGW,msys
1、msys是一个在windows平台模拟shell的程序。
下载安装程序之后,通过安装管理程序,按安装以下内容:
From MinGW installation manager -> All packages -> MSYS
选中以下安装包
msys-base-bin
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin
点 apply changes开始安装。他会自动下载安装好。
需要注意的是,确保不要安装msys-gcc和msys-w32api ,因为这两个包和我们的编译系统发生冲突。
很多人出现一些莫名其妙的问题,就是因为这两个包。
2、安装 MinGW-builds
下载并解压缩 i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z 到C盘根目录 C:\
注意我的目录结构。你尽量和我一样。
3、设置PATH环境变量,将C:\mingw32\bin;添加到第一个。
4、在命令行模式下输入 gc -v 会得到以下内容
c:\gcc -v
Using built-in specs.
COLLECT_GCC=c:\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.8.2/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-4.8.2/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32 --with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++ --enable-shared --enable-static --disable-multilib --enable-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --disable-cloog-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-cloog=/c/mingw482/prerequisites/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='i686-posix-dwarf-rev3, Built by MinGW-W64 project' --with-bugurl= CFLAGS='-O2 -pipe -I/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/include -I/c/mingw482/prerequisites/i686-zlib-static/include -I/c/mingw482/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -I/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/include -I/c/mingw482/prerequisites/i686-zlib-static/include -I/c/mingw482/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/lib -L/c/mingw482/prerequisites/i686-zlib-static/lib -L/c/mingw482/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 4.8.2 (i686-posix-dwarf-rev3, Built by MinGW-W64 project)
至此,你的开发环境已经搭建好了,很简单吧
第二部分:下载bitcoin引用的外部库
我们把它们全部放在 C:\deps目录下
2.1 安装OpenSSL
进入启动 MinGw shell 比如目录:(C:\MinGW\msys\1.0\msys.bat)运行这个msys.bat,就会启动一个shell环境,提示符是$
输入命令
cd /c/deps/
tar xvfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
Configure no-shared no-dso mingw
make
等待几分钟后,就把openssl编译好了。
2.2 下载Berkeley DB
我们推荐使用 4.8版本
同样在msys shell环境下输入以下命令
cd /c/deps/
tar xvfz db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
make
等待编译
2.3 安装Boost
msys命令:
cd C:\deps\boost_1_55_0\
bootstrap.bat mingw
b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage
2.4 安装Miniupnpc
cd C:\deps\miniupnpc
mingw32-make -f Makefile.mingw init upnpc-static
msys shell命令
cd /c/deps/protobuf-2.5.0
configure --disable-shared
make
2.6 qrencode:
命令
cd /c/deps/libpng-1.6.10
configure --disable-shared
make
LIBS="../libpng-1.6.10/.libs/libpng16.a ../../mingw32/i686-w64-mingw32/lib/libz.a" \
png_CFLAGS="-I../libpng-1.6.10" \
png_LIBS="-L../libpng-1.6.10/.libs" \
configure --enable-static --disable-shared --without-tools
make
2.7 安装 Qt 5 库
下载和解压缩
在 windows命令行输入:
set INCLUDE=C:\deps\libpng-1.6.10;C:\deps\openssl-1.0.1g\include
set LIB=C:\deps\libpng-1.6.10\.libs;C:\deps\openssl-1.0.1g
cd C:\Qt\5.2.1
configure.bat -release -opensource -confirm-license -static -make libs -no-sql-sqlite -no-opengl -system-zlib -qt-pcre -no-icu -no-gif -system-libpng -no-libjpeg -no-freetype -no-angle -no-vcproj -openssl-linked -no-dbus -no-audio-backend -no-wmf-backend -no-qml-debug
mingw32-make
set PATH=%PATH%;C:\Qt\5.2.1\bin
cd C:\Qt\qttools-opensource-src-5.2.1
qmake qttools.pro
mingw32-make
3. 下载Bitcoin 0.9.1
在msys shell下输入以下命令行:
cp /c/deps/libpng-1.6.10/.libs/libpng16.a /c/deps/libpng-1.6.10/.libs/libpng.a
cd /c/bitcoin-0.9.1
./autogen.sh
CPPFLAGS="-I/c/deps/boost_1_55_0 \
-I/c/deps/db-4.8.30.NC/build_unix \
-I/c/deps/openssl-1.0.1g/include \
-I/c/deps \
-I/c/deps/protobuf-2.5.0/src \
-I/c/deps/libpng-1.6.10 \
-I/c/deps/qrencode-3.4.3" \
LDFLAGS="-L/c/deps/boost_1_55_0/stage/lib \
-L/c/deps/db-4.8.30.NC/build_unix \
-L/c/deps/openssl-1.0.1g \
-L/c/deps/miniupnpc \
-L/c/deps/protobuf-2.5.0/src/.libs \
-L/c/deps/libpng-1.6.10/.libs \
-L/c/deps/qrencode-3.4.3/.libs" \
./configure \
--disable-upnp-default \
--disable-tests \
--with-qt-incdir=/c/Qt/5.2.1/include \
--with-qt-libdir=/c/Qt/5.2.1/lib \
--with-qt-bindir=/c/Qt/5.2.1/bin \
--with-qt-plugindir=/c/Qt/5.2.1/plugins \
--with-boost-system=mgw48-mt-s-1_55 \
--with-boost-filesystem=mgw48-mt-s-1_55 \
--with-boost-program-options=mgw48-mt-s-1_55 \
--with-boost-thread=mgw48-mt-s-1_55 \
--with-boost-chrono=mgw48-mt-s-1_55 \
--with-protoc-bindir=/c/deps/protobuf-2.5.0/src
make
strip src/bitcoin-cli.exe
strip src/bitcoind.exe
strip src/qt/bitcoin-qt.exe
这样,你就得到了变异好的 bitcoin-cli.exe和bitcoind.exe ,bitcoin-qt.exe(windows QT图形界面的钱包软件)
❹ Ubuntu虚拟机里怎么编译内核
方法/步骤
”Ctrl+Alt+T”进入终端,使用命令 sudo passwd root 启动root账号,重启,使用 su 命令获得root权限;
安装编译内核所需软件包
# apt-get update
# apt-get install build-essential kernel-package libncurses5-dev fakeroot 选择Y
下载3.19.3源码包并解压
# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.3.tar.xz
# tar -Jxvf linux-3.19.3.tar.xz
配置内核
# cd linux-3.19.3 (cd命令进入源码目录)
# make mrproper (得到源代码后,将其净化)
# make menuconfig (对内核选项进行配置,不需要配置,直接enter)
# cp /boot/config-'uname -r'-generic ./.config ('uname -r'-generic指现版本内核)
# make clean (删除配置时留下的一些不用的文件)
编译内核(需要很长时间,我用了有两小时,请耐心等待)
# make bzImage
# make moles (编译模块)
安装新内核
# make moles_install (安装模块)
# make install
制作启动盘
# sudo mkinitramfs 3.19.3 -o /boot/initrd.img-3.19.3
更新grub2
# sudo update-grub2
重启,使用新内核(不是注销哦,是重启)
使用命令# uname -r 查看内核版本
❺ 在ubuntu下编译软件出错,请各位大神帮忙看看是缺什么东西,成分感激!
最后两行不是有说么,在configure的6032行有语法错误,它不认识LIBCURL_CHECK_CONFIG后面括号里的‘,'符号吧。你先改正下试试。
❻ ubuntu怎么编译 libxcb
2、解压;tar -xvzf qt-everywhere-opensource-src-5.0.1.tar.gz
3、cd qt-everywhere-opensource-src-5.0.1
4、./configure --prefix=`pwd`/../qt5 -nomake tests
出现:The test for linking against libxcb and support libraries failed!
You might need install dependency packages, or pass -qt-xcb.
See src/plugins/platforms/xcb/README.
*** qtbase/configure exited with non-zero status.
❼ ubuntu下编译问题
你用这个命令看看那个适合你的
apt-cache search readline
❽ 用Go来做以太坊开发④智能合约
在这个章节中我们会介绍如何用Go来编译,部署,写入和读取智能合约。
与智能合约交互,我们要先生成相应智能合约的应用二进制接口ABI(application binary interface),并把ABI编译成我们可以在Go应用中调用的格式。
第一步是安装 Solidity编译器 ( solc ).
Solc 在Ubuntu上有snapcraft包。
Solc在macOS上有Homebrew的包。
其他的平台或者从源码编译的教程请查阅官方solidity文档 install guide .
我们还得安装一个叫 abigen 的工具,来从solidity智能合约生成ABI。
假设您已经在计算机上设置了Go,只需运行以下命令即可安装 abigen 工具。
我们将创建一个简单的智能合约来测试。 学习更复杂的智能合约,或者智能合约的开发的内容则超出了本书的范围。 我强烈建议您查看 truffle framework 来学习开发和测试智能合约。
这里只是一个简单的合约,就是一个键/值存储,只有一个外部方法来设置任何人的键/值对。 我们还在设置值后添加了要发出的事件。
虽然这个智能合约很简单,但它将适用于这个例子。
现在我们可以从一个solidity文件生成ABI。
它会将其写入名为“Store_sol_Store.abi”的文件中
现在让我们用 abigen 将ABI转换为我们可以导入的Go文件。 这个新文件将包含我们可以用来与Go应用程序中的智能合约进行交互的所有可用方法。
为了从Go部署智能合约,我们还需要将solidity智能合约编译为EVM字节码。 EVM字节码将在事务的数据字段中发送。 在Go文件上生成部署方法需要bin文件。
现在我们编译Go合约文件,其中包括deploy方法,因为我们包含了bin文件。
在接下来的课程中,我们将学习如何部署智能合约,然后与之交互。
Commands
Store.sol
solc version used for these examples
如果你还没看之前的章节,请先学习 编译智能合约的章节 因为这节内容,需要先了解如何将智能合约编译为Go文件。
假设你已经导入从 abigen 生成的新创建的Go包文件,并设置ethclient,加载您的私钥,下一步是创建一个有配置密匙的交易发送器(tansactor)。 首先从go-ethereum导入 accounts/abi/bind 包,然后调用传入私钥的 NewKeyedTransactor 。 然后设置通常的属性,如nonce,燃气价格,燃气上线限制和ETH值。
如果你还记得上个章节的内容, 我们创建了一个非常简单的“Store”合约,用于设置和存储键/值对。 生成的Go合约文件提供了部署方法。 部署方法名称始终以单词 Deploy 开头,后跟合约名称,在本例中为 Store 。
deploy函数接受有密匙的事务处理器,ethclient,以及智能合约构造函数可能接受的任何输入参数。我们测试的智能合约接受一个版本号的字符串参数。 此函数将返回新部署的合约地址,事务对象,我们可以交互的合约实例,还有错误(如果有)。
就这么简单:)你可以用事务哈希来在Etherscan上查询合约的部署状态: https://rinkeby.etherscan.io/tx/
Commands
Store.sol
contract_deploy.go
solc version used for these examples
这写章节需要了解如何将智能合约的ABI编译成Go的合约文件。如果你还没看, 前先读 上一个章节 。
一旦使用 abigen 工具将智能合约的ABI编译为Go包,下一步就是调用“New”方法,其格式为“New<contractname style="box-sizing: border-box; font-size: 16px; -ms-text-size-adjust: auto; -webkit-tap-highlight-color: transparent;">”,所以在我们的例子中如果你 回想一下它将是 NewStore 。 此初始化方法接收智能合约的地址,并返回可以开始与之交互的合约实例。</contractname>
Commands
Store.sol
contract_load.go
solc version used for these examples
这写章节需要了解如何将智能合约的ABI编译成Go的合约文件。如果你还没看, 前先读 上一个章节 。
在上个章节我们学习了如何在Go应用程序中初始化合约实例。 现在我们将使用新合约实例提供的方法来阅读智能合约。 如果你还记得我们在部署过程中设置的合约中有一个名为 version 的全局变量。 因为它是公开的,这意味着它们将成为我们自动创建的getter函数。 常量和view函数也接受 bind.CallOpts 作为第一个参数。了解可用的具体选项要看相应类的 文档 一般情况下我们可以用 nil 。
Commands
Store.sol
contract_read.go
solc version used for these examples
这写章节需要了解如何将智能合约的ABI编译成Go的合约文件。如果你还没看, 前先读 上一个章节 。
写入智能合约需要我们用私钥来对交易事务进行签名。
我们还需要先查到nonce和燃气价格。
接下来,我们创建一个新的keyed transactor,它接收私钥。
然后我们需要设置keyed transactor的标准交易选项。
现在我们加载一个智能合约的实例。如果你还记得 上个章节 我们创建一个名为 Store 的合约,并使用 abigen 工具生成一个Go文件。 要初始化它,我们只需调用合约包的 New 方法,并提供智能合约地址和ethclient,它返回我们可以使用的合约实例。
我们创建的智能合约有一个名为 SetItem 的外部方法,它接受solidity“bytes32”格式的两个参数(key,value)。 这意味着Go合约包要求我们传递一个长度为32个字节的字节数组。 调用 SetItem 方法需要我们传递我们之前创建的 auth 对象(keyed transactor)。 在幕后,此方法将使用它的参数对此函数调用进行编码,将其设置为事务的 data 属性,并使用私钥对其进行签名。 结果将是一个已签名的事务对象。
现在我就可以看到交易已经成功被发送到了以太坊网络了: https://rinkeby.etherscan.io/tx/
要验证键/值是否已设置,我们可以读取智能合约中的值。
搞定!
Commands
Store.sol
contract_write.go
solc version used for these examples
有时您需要读取已部署的智能合约的字节码。 由于所有智能合约字节码都存在于区块链中,因此我们可以轻松获取它。
首先设置客户端和要读取的字节码的智能合约地址。
现在你需要调用客户端的 codeAt 方法。 codeAt 方法接受智能合约地址和可选的块编号,并以字节格式返回字节码。
你也可以在etherscan上查询16进制格式的字节码 https://rinkeby.etherscan.io/address/#code
contract_bytecode.go
首先创建一个ERC20智能合约interface。 这只是与您可以调用的函数的函数定义的契约。
然后将interface智能合约编译为JSON ABI,并使用 abigen 从ABI创建Go包。
假设我们已经像往常一样设置了以太坊客户端,我们现在可以将新的 token 包导入我们的应用程序并实例化它。这个例子里我们用 Golem 代币的地址.
我们现在可以调用任何ERC20的方法。 例如,我们可以查询用户的代币余额。
我们还可以读ERC20智能合约的公共变量。
我们可以做一些简单的数学运算将余额转换为可读的十进制格式。
同样的信息也可以在etherscan上查询: https://etherscan.io/token/?a=
Commands
erc20.sol
contract_read_erc20.go
solc version used for these examples