2013-12-17 9 views
1

Итак, я попытался скомпилировать один из этих Altcoins (Bitcoin) клиент QT для Mac OS X Mavericks и через некоторое время потерял все вместе (boost, db48, miniupnpc, qt 4.8.5 и qt creator 2.5.2) Я мог бы скомпилировать код, но, когда вы достигли стадии связывания файлов, я получаю ошибку «Неопределенные символы для архитектуры x86_64». Здесь весь выход:Mac OS X Linker

g++ -headerpad_max_install_names -fstack-protector -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o Bosscoin-Qt.app/Contents/MacOS/Bosscoin-Qt build/macdockiconhandler.o build/bitcoin.o build/bitcoingui.o build/transactiontablemodel.o build/addresstablemodel.o build/optionsdialog.o build/sendcoinsdialog.o build/addressbookpage.o build/signverifymessagedialog.o build/aboutdialog.o build/editaddressdialog.o build/bitcoinaddressvalidator.o build/version.o build/sync.o build/util.o build/netbase.o build/key.o build/script.o build/main.o build/init.o build/net.o build/irc.o build/checkpoints.o build/addrman.o build/db.o build/walletdb.o build/json_spirit_writer.o build/json_spirit_value.o build/json_spirit_reader.o build/clientmodel.o build/guiutil.o build/transactionrecord.o build/optionsmodel.o build/monitoreddatamapper.o build/transactiondesc.o build/transactiondescdialog.o build/bitcoinstrings.o build/bitcoinamountfield.o build/wallet.o build/keystore.o build/transactionfilterproxy.o build/transactionview.o build/walletmodel.o build/bitcoinrpc.o build/rpcdump.o build/rpcnet.o build/rpcrawtransaction.o build/overviewpage.o build/csvmodelwriter.o build/crypter.o build/sendcoinsentry.o build/qvalidatedlineedit.o build/bitcoinunits.o build/qvaluecombobox.o build/askpassphrasedialog.o build/protocol.o build/notificator.o build/qtipcserver.o build/rpcconsole.o build/scrypt.o build/miningpage.o build/noui.o build/moc_bitcoingui.o build/moc_transactiontablemodel.o build/moc_addresstablemodel.o build/moc_optionsdialog.o build/moc_sendcoinsdialog.o build/moc_addressbookpage.o build/moc_signverifymessagedialog.o build/moc_aboutdialog.o build/moc_editaddressdialog.o build/moc_bitcoinaddressvalidator.o build/moc_clientmodel.o build/moc_guiutil.o build/moc_optionsmodel.o build/moc_monitoreddatamapper.o build/moc_transactiondesc.o build/moc_transactiondescdialog.o build/moc_bitcoinamountfield.o build/moc_transactionfilterproxy.o build/moc_transactionview.o build/moc_walletmodel.o build/moc_overviewpage.o build/moc_csvmodelwriter.o build/moc_sendcoinsentry.o build/moc_qvalidatedlineedit.o build/moc_qvaluecombobox.o build/moc_askpassphrasedialog.o build/moc_notificator.o build/moc_miningpage.o build/moc_rpcconsole.o build/moc_macdockiconhandler.o build/qrc_bitcoin.o 
-F/Library/Frameworks -L/Library/Frameworks -lminiupnpc -framework Foundation -framework ApplicationServices -framework AppKit -L/opt/local/lib -L/opt/local/lib/db48 -lssl -lcrypto -ldb_cxx-4.8 -lboost_system-mt -lboost_filesystem-mt -lboost_program_options-mt -lboost_thread-mt -framework QtGui -framework QtCore 
Undefined symbols for architecture x86_64: 
"boost::program_options::to_internal(std::string const&)", referenced from: 
boost::program_options::detail::basic_config_file_iterator<char>::getline(std::string&) in util.o 
"boost::program_options::detail::common_config_file_iterator::common_config_file_iterator(std::set<std::string, std::less<std::string>, std::allocator<std::string> > const&, bool)", referenced from: 
boost::program_options::detail::basic_config_file_iterator<char>::basic_config_file_iterator(std::istream&, std::set<std::string, std::less<std::string>, std::allocator<std::string> > const&, bool) in util.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [Bosscoin-Qt.app/Contents/MacOS/Bosscoin-Qt] Error 1 
make: Leaving directory `/Users/kriegalex/dev/bosscoin/bosscoin-qt-build-desktop-Qt_4_8_5_in_PATH__System__Release' 
13:30:58: The process "/usr/bin/make" exited with code 2. 
Error while building/deploying project bosscoin-qt (target: Desktop) 

Я действительно пытался пройти через много потоков говорить наддува и связывая проблемы, и я пытался компилировать с г ++ или звоном ++, как было предложено в самой популярной теме, но ничего, кажется, Работа.

Я бы очень признателен за помощь. Я думаю, что если кто-то уже скомпилировал клиенты Mac OS QT, должно быть достаточно понятно, что не так.

С наилучшими пожеланиями

ответ

1

Таким образом, я нашел решение, и теперь он работает, но я не уверен, какой из них решена проблема:

  • Получить Qt из Homebrew (заварить установить кварты), а не из MacPorts или на официальном сайте

  • Попросите MacPorts установить подталкивание и другие зависимости с тегом + универсальный

    sudo port install boost +universal

  • Тогда я просто использовал QMAKE и сделать для компиляции (как описано везде)

Я думаю, это второе решение, которое решило его, потому что оно скомпилировало 64-битные библиотеки.

Спасибо биби, чтобы указывать мне на 32/64 битном проблемы :)

0

выглядит, как вы строите для 64-битных, но некоторые ЛИЭС являются 32bit пытаются заставить его в .pro

CONFIG+=x86 
+0

Well благодаря свой комментарий, я увидел, что Qt Creator только позволяет мне выбрать между GCC 64 бит или 64 бит Clang, поэтому CONFIG + = x86_64 автоматически добавляется к команде qmake. Возможно, мне нужно удалить QT4 и переустановить его с некоторыми параметрами, чтобы активировать 32-разрядную поддержку ... Я попытаюсь выполнить qmake в 32 бит без Qt Creator, и если это не сработает, я попытаюсь переустановить Qt, чтобы 32 бит компилятор должен быть активным – Kriegalex

+0

Итак, я добавил CONFIG + = x86 в мой .pro и в моей команде qmake, и я попытался запустить qmake за пределами Qt Creator, но что-то по-прежнему странно: clang ++ -c -pipe -fstack-protector -O2 -arch x86_64 -arch i386 Почему существуют два определения «-arch»? Я не вижу, откуда первый приходит ... – Kriegalex

+0

, вероятно, по умолчанию qt позволяет 64-битной попытке удалить его с помощью CONFIG- = x86_64 – bibi