novacoin-project / novacoin

Novacoin sources tree
MIT License
114 stars 517 forks source link

undefined reference to `MultisigDialog::MultisigDialog()' #391

Closed lvypaul closed 2 years ago

lvypaul commented 2 years ago

Hi, I am trying to compile this on Fedora35, it compiled with a few fixes on FC34 (most of them related to boost and bignum) but here ld is failing and is not clear for me why:

g++ -c -pipe -fstack-protector-all --param ssp-buffer-size=1 -O2 -D_REENTRANT -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wno-unused-local-typedef -Wstack-protector -fPIC -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DSTDC_FORMAT_MACROS -DSTDC_LIMIT_MACROS -DUSE_IPV6=1 -DHAVE_BUILD_INFO -DLINUX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -Isrc -Isrc/json -Isrc/qt -I/usr/include/qt6 -I/usr/include/qt6/QtWidgets -I/usr/include/qt6/QtGui -I/usr/include/qt6/QtNetwork -I/usr/include/qt6/QtCore -Ibuild -Ibuild -I/usr/lib64/qt6/mkspecs/linux-g++ -o build/moc_multisigdialog.o build/moc_multisigdialog.cpp g++ -fstack-protector-all --param ssp-buffer-size=1 -Wl,-O1 -Wl,-rpath-link,/usr/lib64 -o novacoin-qt build/txdb-bdb.o build/scrypt-generic.o build/bitcoin.o build/bitcoingui.o build/intro.o build/transactiontablemodel.o build/addresstablemodel.o build/optionsdialog.o build/sendcoinsdialog.o build/coincontroldialog.o build/coincontroltreewidget.o build/addressbookpage.o build/signverifymessagedialog.o build/aboutdialog.o build/editaddressdialog.o build/bitcoinaddressvalidator.o build/trafficgraphwidget.o build/mintingfilterproxy.o build/mintingtablemodel.o build/mintingview.o build/kernelrecord.o build/alert.o build/version.o build/sync.o build/util.o build/netbase.o build/ntp.o build/key.o build/script.o build/main.o build/miner.o build/init.o build/net.o build/stun.o build/irc.o build/checkpoints.o build/addrman.o build/db.o build/walletdb.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/rpccrypt.o build/rpcdump.o build/rpcnet.o build/rpcmining.o build/rpcwallet.o build/rpcblockchain.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/noui.o build/kernel.o build/kernel_worker.o build/multisigaddressentry.o build/multisiginputentry.o build/multisigdialog.o build/secondauthdialog.o build/base58.o build/cryptogram.o build/ecies.o build/ipcollector.o build/qrc_bitcoin.o build/moc_bitcoingui.o build/moc_intro.o build/moc_transactiontablemodel.o build/moc_addresstablemodel.o build/moc_optionsdialog.o build/moc_coincontroldialog.o build/moc_coincontroltreewidget.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_mintingfilterproxy.o build/moc_mintingtablemodel.o build/moc_mintingview.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_trafficgraphwidget.o build/moc_notificator.o build/moc_rpcconsole.o build/moc_multisigaddressentry.o build/moc_multisiginputentry.o build/moc_multisigdialog.o build/moc_secondauthdialog.o -lrt -lssl -lcrypto -ldb_cxx -lboost_system -lboost_chrono -lboost_filesystem -lboost_program_options -lboost_thread -ldl -lpthread /usr/lib64/libQt6Widgets.so /usr/lib64/libQt6Gui.so /usr/lib64/libQt6Network.so /usr/lib64/libQt6Core.so -lGLX -lOpenGL
/usr/bin/ld: build/moc_multisigdialog.o: in function QtPrivate::QMetaTypeForType<MultisigDialog>::getDefaultCtr()::{lambda(QtPrivate::QMetaTypeInterface const*, void*)#1}::_FUN(QtPrivate::QMetaTypeInterface const*, void*)': moc_multisigdialog.cpp:(.text._ZZN9QtPrivate16QMetaTypeForTypeI14MultisigDialogE13getDefaultCtrEvENUlPKNS_18QMetaTypeInterfaceEPvE_4_FUNES5_S6_[_ZZN9QtPrivate16QMetaTypeForTypeI14MultisigDialogE13getDefaultCtrEvENUlPKNS_18QMetaTypeInterfaceEPvE_4_FUNES5_S6_]+0x2c): undefined reference toMultisigDialog::MultisigDialog()' collect2: error: ld returned 1 exit status make: *** [Makefile:695: novacoin-qt] Error 1

For FC35 g++ version is: g++ (GCC) 11.2.1 20211203 (Red Hat 11.2.1-7)

Thank you, Paul

CryptoManiac commented 2 years ago

Hi. Though I'm not sure it does really seem as a qt6 issue I'm familiar with. May I know Qt version which you are trying to link it with? Git revision would be helpful as well. Judging by intermediate file names, you're not building it with cmake so it looks like your source tree is either older than it should be or you're using a custom build system. Update to latest HEAD revision should resolve your issues and there won't be any need to apply boost or openssl related changes.

CryptoManiac commented 2 years ago

Also it would be a good idea to see if build/multisigdialog.o does contain MultisigDialog::MultisigDialog. Something like nm multisigdialog.o | c++filt might save you from a lot of trouble.