在Mac OS X上构建bitcoind时出现相同的错误

时间:2015-08-04 05:26:44

标签: c++ macos qt bitcoin bitcoind

所以我参与了为OS X构建bitcoind的文档:https://github.com/bitcoin/bitcoin/blob/master/doc/build-osx.md我每次尝试构建时都会遇到相同的错误。以下是我采取的步骤:

brew install autoconf automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf qt5

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin

./autogen.sh
./configure --with-gui=qt5
make

这是我得到的错误:

OBJCXXLD qt/bitcoin-qt
clang: error: unknown argument: '-framework QtNetwork'
clang: error: unknown argument: '-framework QtWidgets'
clang: error: unknown argument: '-framework QtGui'
clang: error: unknown argument: '-framework QtCore'
clang: error: unknown argument: '-framework QtDBus'
clang: error: unknown argument: '-framework QtCore'
make[2]: *** [qt/bitcoin-qt] Error 1
make[1]: *** [check-recursive] Error 1
make: *** [check-recursive] Error 1

我已经用Google搜索了一天多了。我在这里手动下载了开源Qt:http://www.qt.io/download-open-source/,我通过brew等安装了qt和qt5。我不熟悉C / C ++并编译代码而不知道是什么尝试下一步。提前致谢

4 个答案:

答案 0 :(得分:2)

首先尝试构建一个非GUI bitcoind:

make clean
./configure --without-gui
make

答案 1 :(得分:1)

我遇到了同样的错误......我通过手动编辑 MakeFile

修复了此错误

问题出在以下QT_DBUS_LIBS, QT_LIBS and QT_TEST_LIBS定义中...... -F flag and -framework是造成问题的原因。

QT_DBUS_LIBS = -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtDBus -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtCore 
QT_LIBS = -F/usr/local/Cellar/qt5/5.5.0/lib/QtNetwork -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtWidgets -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtGui -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtCore  -framework Foundation -framework ApplicationServices -framework AppKit
QT_TEST_LIBS = -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtTest -F/usr/local/Cellar/qt5/5.5.0/lib -framework\ QtCore 

用直接引用库替换这些库名...你必须先找到你的Qt库路径,我的是/usr/local/Cellar/qt5/5.5.0/lib

QT_DBUS_LIBS = /usr/local/Cellar/qt5/5.5.0/lib/QtDBus.framework/QtDBus /usr/local/Cellar/qt5/5.5.0/lib/QtCore.framework/QtCore
QT_LIBS = /usr/local/Cellar/qt5/5.5.0/lib/QtNetwork.framework/QtNetwork /usr/local/Cellar/qt5/5.5.0/lib/QtWidgets.framework/QtWidgets /usr/local/Cellar/qt5/5.5.0/lib/QtGui.framework/QtGui /usr/local/Cellar/qt5/5.5.0/lib/QtCore.framework/QtCore  -framework Foundation -framework ApplicationServices -framework AppKit
QT_TEST_LIBS = /usr/local/Cellar/qt5/5.5.0/lib/QtTest.framework/QtTest /usr/local/Cellar/qt5/5.5.0/lib/QtCore.framework/QtCore

更改后

make clean
make

效果很好!

从src \ qt目录运行bitcoin-qt比特币核心的GUI版本

玩得开心!请记住,如果再次运行configure,这些更改将被覆盖。

答案 2 :(得分:0)

我通过对Makefile和src / Makefile进行更改(需要在每个./configure之后重做)来传递此错误

  

1:取消几个-framework Qtxxxx,因为它们与-FF路径/ / qt /'有点多余。在同一行。

     

2:使用' -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs将剩下的' -framework替换为一些基本的Apple库/MacOSX10.10.sdk/System/Library/Frameworks'

但是毕竟,我仍然放弃了qt gui,因为我接下来确实问题就像下面的链接一样,似乎自制的qt5不适用于x64,而且我懒得跟随这里的黑客< / p>

  

https://github.com/bitcoin/bitcoin/issues/5728

答案 3 :(得分:0)

我遇到了同样的问题并通过切换回qt4并在没有GUI的情况下编译来解决它:

brew install autoconf automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf qt4

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin

./autogen.sh
./configure
make