Title: I need help in releasing desktop wallet exe file error.
Post by: linz on December 14, 2020, 09:15:27 AM
I compile my clone coin desktop wallet exe file by using this tutorial https://www.walletbuilders.com/learning-center/article/how-do-i-cross-compile-a-wallet-for-windows-scrypt-powpos in final stage get this error /mnt/mxe/usr/bin/i686-w64-mingw32.static-ld: cannot find -lboost_system-mgw49-mt-sd-1_55 /mnt/mxe/usr/bin/i686-w64-mingw32.static-ld: cannot find -lboost_filesystem-mgw49-mt-sd-1_55 /mnt/mxe/usr/bin/i686-w64-mingw32.static-ld: cannot find -lboost_program_options-mgw49-mt-sd-1_55 /mnt/mxe/usr/bin/i686-w64-mingw32.static-ld: cannot find -lboost_chrono-mgw49-mt-sd-1_55 collect2: error: ld returned 1 exit status Makefile.Release:458: recipe for target 'release/mega-qt.exe' failed make: *** [release/mega-qt.exe] Error 1 root@wal:~/megacoin# make -qt make -f Makefile.Release make[1]: Entering directory '/root/megacoin' touch release/mega-qt.exe fail in releasing exe file wallet exe file size is 0' How can solve this error . please help me. here is Megacoin-qt.pro source code TEMPLATE = app TARGET = mega-qt VERSION = 1.0.7 INCLUDEPATH += src src/json src/qt DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE CONFIG += no_include_pwd CONFIG += thread
greaterThan(QT_MAJOR_VERSION, 4) { QT += widgets DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 }
# for boost 1.37, add -mt to the boost libraries # use: qmake BOOST_LIB_SUFFIX=-mt # for boost thread win32 with _win32 sufix # use: BOOST_THREAD_LIB_SUFFIX=_win32-... # or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
BOOST_LIB_SUFFIX=-mgw49-mt-sd-1_55 BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0 BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j MINIUPNPC_LIB_SUFFIX=-miniupnpc MINIUPNPC_INCLUDE_PATH=C:/deps/miniupnpc MINIUPNPC_LIB_PATH=C:/deps/miniupnpc QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4 QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs
# Dependency library locations can be customized with: # BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH, # BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
OBJECTS_DIR = build MOC_DIR = build UI_DIR = build
# use: qmake "RELEASE=1" contains(RELEASE, 1) { # Mac: compile for maximum compatibility (10.5, 32-bit) macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk
!windows:!macx { # Linux: static link LIBS += -Wl,-Bstatic } }
!win32 { # for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection QMAKE_CXXFLAGS *= -fstack-protector-all --param ssp-buffer-size=1 QMAKE_LFLAGS *= -fstack-protector-all --param ssp-buffer-size=1 # We need to exclude this for Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable! # This can be enabled for Windows, when we switch to MinGW >= 4.4.x. } # for extra security on Windows: enable ASLR and DEP via GCC linker flags win32:QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static #win32:QMAKE_LFLAGS += -static-libgcc -static-libstdc++
# use: qmake "USE_QRCODE=1" # libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support contains(USE_QRCODE, 1) { message(Building with QRCode support) DEFINES += USE_QRCODE LIBS += -lqrencode }
# use: qmake "USE_UPNP=1" ( enabled by default; default) # or: qmake "USE_UPNP=0" (disabled by default) # or: qmake "USE_UPNP=-" (not supported) # miniupnpc (http://miniupnp.free.fr/files/) must be installed for support contains(USE_UPNP, -) { message(Building without UPNP support) } else { message(Building with UPNP support) count(USE_UPNP, 0) { USE_UPNP=1 } DEFINES += USE_UPNP=$$USE_UPNP STATICLIB INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc win32:LIBS += -liphlpapi }
# use: qmake "USE_DBUS=1" or qmake "USE_DBUS=0" linux:count(USE_DBUS, 0) { USE_DBUS=1 } contains(USE_DBUS, 1) { message(Building with DBUS (Freedesktop notifications) support) DEFINES += USE_DBUS QT += dbus }
contains(BITCOIN_NEED_QT_PLUGINS, 1) { DEFINES += BITCOIN_NEED_QT_PLUGINS QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets }
INCLUDEPATH += src/leveldb/include src/leveldb/helpers LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a SOURCES += src/txdb-leveldb.cpp !win32 { # we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a } else { # make an educated guess about what the ranlib command is called isEmpty(QMAKE_RANLIB) { QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib) } LIBS += -lshlwapi # genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a } genleveldb.target = $$PWD/src/leveldb/libleveldb.a genleveldb.depends = FORCE PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a QMAKE_EXTRA_TARGETS += genleveldb # Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it. QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
# regenerate src/build.h !windows|contains(USE_BUILD_INFO, 1) { genbuild.depends = FORCE genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h genbuild.target = $$OUT_PWD/build/build.h PRE_TARGETDEPS += $$OUT_PWD/build/build.h QMAKE_EXTRA_TARGETS += genbuild DEFINES += HAVE_BUILD_INFO }
contains(USE_O3, 1) { message(Building O3 optimization flag) QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS += -O3 QMAKE_CFLAGS += -O3 }
*-g++-32 { message("32 platform, adding -msse2 flag")
QMAKE_CXXFLAGS += -msse2 QMAKE_CFLAGS += -msse2 }
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector
# Input DEPENDPATH += src src/json src/qt HEADERS += src/qt/bitcoingui.h \ src/qt/transactiontablemodel.h \ src/qt/addresstablemodel.h \ src/qt/optionsdialog.h \ src/qt/coincontroldialog.h \ src/qt/coincontroltreewidget.h \ src/qt/sendcoinsdialog.h \ src/qt/addressbookpage.h \ src/qt/signverifymessagedialog.h \ src/qt/aboutdialog.h \ src/qt/editaddressdialog.h \ src/qt/bitcoinaddressvalidator.h \ src/alert.h \ src/addrman.h \ src/base58.h \ src/bignum.h \ src/checkpoints.h \ src/compat.h \ src/coincontrol.h \ src/sync.h \ src/util.h \ src/uint256.h \ src/kernel.h \ src/scrypt.h \ src/pbkdf2.h \ src/zerocoin/Accumulator.h \ src/zerocoin/AccumulatorProofOfKnowledge.h \ src/zerocoin/Coin.h \ src/zerocoin/CoinSpend.h \ src/zerocoin/Commitment.h \ src/zerocoin/ParamGeneration.h \ src/zerocoin/Params.h \ src/zerocoin/SerialNumberSignatureOfKnowledge.h \ src/zerocoin/SpendMetaData.h \ src/zerocoin/ZeroTest.h \ src/zerocoin/Zerocoin.h \ src/serialize.h \ src/strlcpy.h \ src/main.h \ src/miner.h \ src/net.h \ src/key.h \ src/db.h \ src/txdb.h \ src/walletdb.h \ src/script.h \ src/init.h \ src/irc.h \ src/mruset.h \ src/json/json_spirit_writer_template.h \ src/json/json_spirit_writer.h \ src/json/json_spirit_value.h \ src/json/json_spirit_utils.h \ src/json/json_spirit_stream_reader.h \ src/json/json_spirit_reader_template.h \ src/json/json_spirit_reader.h \ src/json/json_spirit_error_position.h \ src/json/json_spirit.h \ src/qt/clientmodel.h \ src/qt/guiutil.h \ src/qt/transactionrecord.h \ src/qt/guiconstants.h \ src/qt/optionsmodel.h \ src/qt/monitoreddatamapper.h \ src/qt/transactiondesc.h \ src/qt/transactiondescdialog.h \ src/qt/bitcoinamountfield.h \ src/wallet.h \ src/keystore.h \ src/qt/transactionfilterproxy.h \ src/qt/transactionview.h \ src/qt/walletmodel.h \ src/bitcoinrpc.h \ src/qt/overviewpage.h \ src/qt/csvmodelwriter.h \ src/crypter.h \ src/qt/sendcoinsentry.h \ src/qt/qvalidatedlineedit.h \ src/qt/bitcoinunits.h \ src/qt/qvaluecombobox.h \ src/qt/askpassphrasedialog.h \ src/protocol.h \ src/qt/notificator.h \ src/qt/qtipcserver.h \ src/allocators.h \ src/ui_interface.h \ src/qt/rpcconsole.h \ src/version.h \ src/netbase.h \ src/clientversion.h \ src/threadsafety.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \ src/qt/transactiontablemodel.cpp \ src/qt/addresstablemodel.cpp \ src/qt/optionsdialog.cpp \ src/qt/sendcoinsdialog.cpp \ src/qt/coincontroldialog.cpp \ src/qt/coincontroltreewidget.cpp \ src/qt/addressbookpage.cpp \ src/qt/signverifymessagedialog.cpp \ src/qt/aboutdialog.cpp \ src/qt/editaddressdialog.cpp \ src/qt/bitcoinaddressvalidator.cpp \ src/alert.cpp \ src/version.cpp \ src/sync.cpp \ src/util.cpp \ src/netbase.cpp \ src/key.cpp \ src/script.cpp \ src/main.cpp \ src/miner.cpp \ src/init.cpp \ src/net.cpp \ src/irc.cpp \ src/checkpoints.cpp \ src/addrman.cpp \ src/db.cpp \ src/walletdb.cpp \ src/qt/clientmodel.cpp \ src/qt/guiutil.cpp \ src/qt/transactionrecord.cpp \ src/qt/optionsmodel.cpp \ src/qt/monitoreddatamapper.cpp \ src/qt/transactiondesc.cpp \ src/qt/transactiondescdialog.cpp \ src/qt/bitcoinstrings.cpp \ src/qt/bitcoinamountfield.cpp \ src/wallet.cpp \ src/keystore.cpp \ src/qt/transactionfilterproxy.cpp \ src/qt/transactionview.cpp \ src/qt/walletmodel.cpp \ src/bitcoinrpc.cpp \ src/rpcdump.cpp \ src/rpcnet.cpp \ src/rpcmining.cpp \ src/rpcwallet.cpp \ src/rpcblockchain.cpp \ src/rpcrawtransaction.cpp \ src/qt/overviewpage.cpp \ src/qt/csvmodelwriter.cpp \ src/crypter.cpp \ src/qt/sendcoinsentry.cpp \ src/qt/qvalidatedlineedit.cpp \ src/qt/bitcoinunits.cpp \ src/qt/qvaluecombobox.cpp \ src/qt/askpassphrasedialog.cpp \ src/protocol.cpp \ src/qt/notificator.cpp \ src/qt/qtipcserver.cpp \ src/qt/rpcconsole.cpp \ src/noui.cpp \ src/kernel.cpp \ src/scrypt-arm.S \ src/scrypt-x86.S \ src/scrypt-x86_64.S \ src/scrypt.cpp \ src/pbkdf2.cpp \ src/zerocoin/Accumulator.cpp \ src/zerocoin/AccumulatorProofOfKnowledge.cpp \ src/zerocoin/Coin.cpp \ src/zerocoin/CoinSpend.cpp \ src/zerocoin/Commitment.cpp \ src/zerocoin/ParamGeneration.cpp \ src/zerocoin/Params.cpp \ src/zerocoin/SerialNumberSignatureOfKnowledge.cpp \ src/zerocoin/SpendMetaData.cpp \ src/zerocoin/ZeroTest.cpp
RESOURCES += \ src/qt/bitcoin.qrc
FORMS += \ src/qt/forms/coincontroldialog.ui \ src/qt/forms/sendcoinsdialog.ui \ src/qt/forms/addressbookpage.ui \ src/qt/forms/signverifymessagedialog.ui \ src/qt/forms/aboutdialog.ui \ src/qt/forms/editaddressdialog.ui \ src/qt/forms/transactiondescdialog.ui \ src/qt/forms/overviewpage.ui \ src/qt/forms/sendcoinsentry.ui \ src/qt/forms/askpassphrasedialog.ui \ src/qt/forms/rpcconsole.ui \ src/qt/forms/optionsdialog.ui
contains(USE_QRCODE, 1) { HEADERS += src/qt/qrcodedialog.h SOURCES += src/qt/qrcodedialog.cpp FORMS += src/qt/forms/qrcodedialog.ui }
CODECFORTR = UTF-8
# for lrelease/lupdate # also add new translations to src/qt/bitcoin.qrc under translations/ TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
isEmpty(QMAKE_LRELEASE) { win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease } isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale # automatically build translations, so they can be included in resource file TSQM.name = lrelease ${QMAKE_FILE_IN} TSQM.input = TRANSLATIONS TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} TSQM.CONFIG = no_link QMAKE_EXTRA_COMPILERS += TSQM
# "Other files" to show in Qt Creator OTHER_FILES += \ doc/*.rst doc/*.txt doc/README README.md res/bitcoin-qt.rc
# platform specific defaults, if not overridden on command line isEmpty(BOOST_LIB_SUFFIX) { macx:BOOST_LIB_SUFFIX = -mt windows:BOOST_LIB_SUFFIX = -mt }
isEmpty(BOOST_THREAD_LIB_SUFFIX) { win32:BOOST_THREAD_LIB_SUFFIX = _win32$$BOOST_LIB_SUFFIX else:BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX }
isEmpty(BDB_LIB_PATH) { macx:BDB_LIB_PATH = /opt/local/lib/db48 }
isEmpty(BDB_LIB_SUFFIX) { macx:BDB_LIB_SUFFIX = -4.8 }
isEmpty(BDB_INCLUDE_PATH) { macx:BDB_INCLUDE_PATH = /opt/local/include/db48 }
isEmpty(BOOST_LIB_PATH) { macx:BOOST_LIB_PATH = /opt/local/lib }
isEmpty(BOOST_INCLUDE_PATH) { macx:BOOST_INCLUDE_PATH = /opt/local/include }
windows:DEFINES += WIN32 windows:RC_FILE = src/qt/res/bitcoin-qt.rc
windows:!contains(MINGW_THREAD_BUGFIX, 0) { # At least qmake's win32-g++-cross profile is missing the -lmingwthrd # thread-safety flag. GCC has -mthreads to enable this, but it doesn't # work with static linking. -lmingwthrd must come BEFORE -lmingw, so # it is prepended to QMAKE_LIBS_QT_ENTRY. # It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes # any problems on some untested qmake profile now or in the future. DEFINES += _MT BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY }
macx:HEADERS += src/qt/macdockiconhandler.h macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0 macx:ICON = src/qt/res/icons/bitcoin.icns macx:TARGET = "bitconnect-Qt" macx:QMAKE_CFLAGS_THREAD += -pthread macx:QMAKE_LFLAGS_THREAD += -pthread macx:QMAKE_CXXFLAGS_THREAD += -pthread
# Set libraries and includes at end, to use platform-defined defaults if not overridden INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,) LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX # -lgdi32 has to happen after -lcrypto (see #681) windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32 LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
contains(RELEASE, 1) { !windows:!macx { # Linux: turn dynamic linking back on for c/c++ runtime libraries LIBS += -Wl,-Bdynamic } }
!windows:!macx { DEFINES += LINUX LIBS += -lrt -ldl }
system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)
here is bin bash #!/bin/bash export PATH=/mnt/mxe/usr/bin:$PATH MXE_INCLUDE_PATH=/mnt/mxe/usr/i686-w64-mingw32.static/include MXE_LIB_PATH=/mnt/mxe/usr/i686-w64-mingw32.static/lib
i686-w64-mingw32.static-qmake-qt5 \ RELEASE=1 \ BOOST_LIB_SUFFIX=-mt \ BOOST_THREAD_LIB_SUFFIX=_win32-mt \ BOOST_INCLUDE_PATH=$MXE_INCLUDE_PATH/boost \ BOOST_LIB_PATH=$MXE_LIB_PATH \ OPENSSL_INCLUDE_PATH=$MXE_INCLUDE_PATH/openssl \ OPENSSL_LIB_PATH=$MXE_LIB_PATH \ BDB_INCLUDE_PATH=$MXE_INCLUDE_PATH \ BDB_LIB_PATH=$MXE_LIB_PATH \ MINIUPNPC_INCLUDE_PATH=$MXE_INCLUDE_PATH \ MINIUPNPC_LIB_PATH=$MXE_LIB_PATH \ QMAKE_LRELEASE=/mnt/mxe/usr/i686-w64-mingw32.static/qt5/bin/lrelease Examplecoin-qt.pro
make -f Makefile.Release
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: NotATether on December 14, 2020, 09:46:17 AM
So you really are using Ubuntu with mingw libraries to compile this then. In the file compile-db.sh in this line: Can you change it to: You're having the same error I pointed out in your other thread, you are either missing the boost mingw libraries, or you built them but MXE cannot find them. The MXE_PATH needs to be exported so that it's passed to ./configure and make to allow it to find the path of the boost mingw files that you compiled.
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: linz on December 14, 2020, 11:02:26 AM
So you really are using Ubuntu with mingw libraries to compile this then. In the file compile-db.sh in this line: Can you change it to: You're having the same error I pointed out in your other thread, you are either missing the boost mingw libraries, or you built them but MXE cannot find them. The MXE_PATH needs to be exported so that it's passed to ./configure and make to allow it to find the path of the boost mingw files that you compiled. Thanks bro. This error is link with my previous error Prev error is happen when compile by make command to main folder Second error is happen in qt wallet compile usr/bin cannot find library name How about library directory How can show library location
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: NotATether on December 14, 2020, 12:16:11 PM
It is difficult to find the problem without knowing where all the makefiles and source code are. Can you run: ls -lahR ~/megacoin > ls-output.txt and put the contents of ls-output.txt on pastebin so I can inspect it?
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: linz on December 14, 2020, 12:48:28 PM
It is difficult to find the problem without knowing where all the makefiles and source code are. Can you run: ls -lahR ~/megacoin > ls-output.txt and put the contents of ls-output.txt on pastebin so I can inspect it? here bro https://pastebin.com/7b4isamm here is new error when I insert export as you say Makefile.Release:11495: recipe for target 'build/mega-qt_plugin_import.o' failed make: *** [build/mega-qt_plugin_import.o] Error 1
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: linz on December 14, 2020, 02:42:36 PM
It is difficult to find the problem without knowing where all the makefiles and source code are. Can you run: ls -lahR ~/megacoin > ls-output.txt and put the contents of ls-output.txt on pastebin so I can inspect it? I find one reason this is due to different qt codes. in my clone qt code ,use this BOOST_LIB_SUFFIX=-mgw49-mt-sd-1_55 BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0 BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib BDB_INCLUDE_PATH=C:/deps/db-4.8.30.NC/build_unix BDB_LIB_PATH=C:/deps/db-4.8.30.NC/build_unix OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j MINIUPNPC_LIB_SUFFIX=-miniupnpc MINIUPNPC_INCLUDE_PATH=C:/deps/miniupnpc MINIUPNPC_LIB_PATH=C:/deps/miniupnpc QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4 QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs my following guide compile link is using another qt file https://www.walletbuilders.com/learning-center/article/how-do-i-cross-compile-a-wallet-for-windows-scrypt-powpos its qt codes are here TEMPLATE = app TARGET = mega-qt VERSION = 1.0.7 INCLUDEPATH += src src/json src/qt DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE CONFIG += no_include_pwd CONFIG += thread
greaterThan(QT_MAJOR_VERSION, 4) { QT += widgets DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 }
# for boost 1.37, add -mt to the boost libraries # use: qmake BOOST_LIB_SUFFIX=-mt # for boost thread win32 with _win32 sufix # use: BOOST_THREAD_LIB_SUFFIX=_win32-... # or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
# Dependency library locations can be customized with: # BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH, # BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
OBJECTS_DIR = build MOC_DIR = build UI_DIR = build
# use: qmake "RELEASE=1" contains(RELEASE, 1) { # Mac: compile for maximum compatibility (10.5, 32-bit) macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk
!windows:!macx { # Linux: static link LIBS += -Wl,-Bstatic } }
!win32 { # for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection QMAKE_CXXFLAGS *= -fstack-protector-all --param ssp-buffer-size=1 QMAKE_LFLAGS *= -fstack-protector-all --param ssp-buffer-size=1 # We need to exclude this for Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable! # This can be enabled for Windows, when we switch to MinGW >= 4.4.x. } # for extra security on Windows: enable ASLR and DEP via GCC linker flags win32:QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat win32:QMAKE_LFLAGS += -static-libgcc -static-libstdc++
# use: qmake "USE_QRCODE=1" # libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support contains(USE_QRCODE, 1) { message(Building with QRCode support) DEFINES += USE_QRCODE LIBS += -lqrencode }
# use: qmake "USE_UPNP=1" ( enabled by default; default) # or: qmake "USE_UPNP=0" (disabled by default) # or: qmake "USE_UPNP=-" (not supported) # miniupnpc (http://miniupnp.free.fr/files/) must be installed for support contains(USE_UPNP, -) { message(Building without UPNP support) } else { message(Building with UPNP support) count(USE_UPNP, 0) { USE_UPNP=1 } DEFINES += USE_UPNP=$$USE_UPNP STATICLIB INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc win32:LIBS += -liphlpapi }
# use: qmake "USE_DBUS=1" or qmake "USE_DBUS=0" linux:count(USE_DBUS, 0) { USE_DBUS=1 } contains(USE_DBUS, 1) { message(Building with DBUS (Freedesktop notifications) support) DEFINES += USE_DBUS QT += dbus }
contains(BITCOIN_NEED_QT_PLUGINS, 1) { DEFINES += BITCOIN_NEED_QT_PLUGINS QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets }
INCLUDEPATH += src/leveldb/include src/leveldb/helpers LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a SOURCES += src/txdb-leveldb.cpp !win32 { # we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a } else { # make an educated guess about what the ranlib command is called isEmpty(QMAKE_RANLIB) { QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib) } LIBS += -lshlwapi genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a } genleveldb.target = $$PWD/src/leveldb/libleveldb.a genleveldb.depends = FORCE PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a QMAKE_EXTRA_TARGETS += genleveldb # Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it. QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
# regenerate src/build.h !windows|contains(USE_BUILD_INFO, 1) { genbuild.depends = FORCE genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h genbuild.target = $$OUT_PWD/build/build.h PRE_TARGETDEPS += $$OUT_PWD/build/build.h QMAKE_EXTRA_TARGETS += genbuild DEFINES += HAVE_BUILD_INFO }
contains(USE_O3, 1) { message(Building O3 optimization flag) QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS += -O3 QMAKE_CFLAGS += -O3 }
*-g++-32 { message("32 platform, adding -msse2 flag")
QMAKE_CXXFLAGS += -msse2 QMAKE_CFLAGS += -msse2 }
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector
# Input DEPENDPATH += src src/json src/qt HEADERS += src/qt/bitcoingui.h \ src/qt/transactiontablemodel.h \ src/qt/addresstablemodel.h \ src/qt/optionsdialog.h \ src/qt/coincontroldialog.h \ src/qt/coincontroltreewidget.h \ src/qt/sendcoinsdialog.h \ src/qt/addressbookpage.h \ src/qt/signverifymessagedialog.h \ src/qt/aboutdialog.h \ src/qt/editaddressdialog.h \ src/qt/bitcoinaddressvalidator.h \ src/alert.h \ src/addrman.h \ src/base58.h \ src/bignum.h \ src/checkpoints.h \ src/compat.h \ src/coincontrol.h \ src/sync.h \ src/util.h \ src/uint256.h \ src/kernel.h \ src/scrypt.h \ src/pbkdf2.h \ src/zerocoin/Accumulator.h \ src/zerocoin/AccumulatorProofOfKnowledge.h \ src/zerocoin/Coin.h \ src/zerocoin/CoinSpend.h \ src/zerocoin/Commitment.h \ src/zerocoin/ParamGeneration.h \ src/zerocoin/Params.h \ src/zerocoin/SerialNumberSignatureOfKnowledge.h \ src/zerocoin/SpendMetaData.h \ src/zerocoin/ZeroTest.h \ src/zerocoin/Zerocoin.h \ src/serialize.h \ src/strlcpy.h \ src/main.h \ src/miner.h \ src/net.h \ src/key.h \ src/db.h \ src/txdb.h \ src/walletdb.h \ src/script.h \ src/init.h \ src/irc.h \ src/mruset.h \ src/json/json_spirit_writer_template.h \ src/json/json_spirit_writer.h \ src/json/json_spirit_value.h \ src/json/json_spirit_utils.h \ src/json/json_spirit_stream_reader.h \ src/json/json_spirit_reader_template.h \ src/json/json_spirit_reader.h \ src/json/json_spirit_error_position.h \ src/json/json_spirit.h \ src/qt/clientmodel.h \ src/qt/guiutil.h \ src/qt/transactionrecord.h \ src/qt/guiconstants.h \ src/qt/optionsmodel.h \ src/qt/monitoreddatamapper.h \ src/qt/transactiondesc.h \ src/qt/transactiondescdialog.h \ src/qt/bitcoinamountfield.h \ src/wallet.h \ src/keystore.h \ src/qt/transactionfilterproxy.h \ src/qt/transactionview.h \ src/qt/walletmodel.h \ src/bitcoinrpc.h \ src/qt/overviewpage.h \ src/qt/csvmodelwriter.h \ src/crypter.h \ src/qt/sendcoinsentry.h \ src/qt/qvalidatedlineedit.h \ src/qt/bitcoinunits.h \ src/qt/qvaluecombobox.h \ src/qt/askpassphrasedialog.h \ src/protocol.h \ src/qt/notificator.h \ src/qt/qtipcserver.h \ src/allocators.h \ src/ui_interface.h \ src/qt/rpcconsole.h \ src/version.h \ src/netbase.h \ src/clientversion.h \ src/threadsafety.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \ src/qt/transactiontablemodel.cpp \ src/qt/addresstablemodel.cpp \ src/qt/optionsdialog.cpp \ src/qt/sendcoinsdialog.cpp \ src/qt/coincontroldialog.cpp \ src/qt/coincontroltreewidget.cpp \ src/qt/addressbookpage.cpp \ src/qt/signverifymessagedialog.cpp \ src/qt/aboutdialog.cpp \ src/qt/editaddressdialog.cpp \ src/qt/bitcoinaddressvalidator.cpp \ src/alert.cpp \ src/version.cpp \ src/sync.cpp \ src/util.cpp \ src/netbase.cpp \ src/key.cpp \ src/script.cpp \ src/main.cpp \ src/miner.cpp \ src/init.cpp \ src/net.cpp \ src/irc.cpp \ src/checkpoints.cpp \ src/addrman.cpp \ src/db.cpp \ src/walletdb.cpp \ src/qt/clientmodel.cpp \ src/qt/guiutil.cpp \ src/qt/transactionrecord.cpp \ src/qt/optionsmodel.cpp \ src/qt/monitoreddatamapper.cpp \ src/qt/transactiondesc.cpp \ src/qt/transactiondescdialog.cpp \ src/qt/bitcoinstrings.cpp \ src/qt/bitcoinamountfield.cpp \ src/wallet.cpp \ src/keystore.cpp \ src/qt/transactionfilterproxy.cpp \ src/qt/transactionview.cpp \ src/qt/walletmodel.cpp \ src/bitcoinrpc.cpp \ src/rpcdump.cpp \ src/rpcnet.cpp \ src/rpcmining.cpp \ src/rpcwallet.cpp \ src/rpcblockchain.cpp \ src/rpcrawtransaction.cpp \ src/qt/overviewpage.cpp \ src/qt/csvmodelwriter.cpp \ src/crypter.cpp \ src/qt/sendcoinsentry.cpp \ src/qt/qvalidatedlineedit.cpp \ src/qt/bitcoinunits.cpp \ src/qt/qvaluecombobox.cpp \ src/qt/askpassphrasedialog.cpp \ src/protocol.cpp \ src/qt/notificator.cpp \ src/qt/qtipcserver.cpp \ src/qt/rpcconsole.cpp \ src/noui.cpp \ src/kernel.cpp \ src/scrypt-arm.S \ src/scrypt-x86.S \ src/scrypt-x86_64.S \ src/scrypt.cpp \ src/pbkdf2.cpp \ src/zerocoin/Accumulator.cpp \ src/zerocoin/AccumulatorProofOfKnowledge.cpp \ src/zerocoin/Coin.cpp \ src/zerocoin/CoinSpend.cpp \ src/zerocoin/Commitment.cpp \ src/zerocoin/ParamGeneration.cpp \ src/zerocoin/Params.cpp \ src/zerocoin/SerialNumberSignatureOfKnowledge.cpp \ src/zerocoin/SpendMetaData.cpp \ src/zerocoin/ZeroTest.cpp
RESOURCES += \ src/qt/bitcoin.qrc
FORMS += \ src/qt/forms/coincontroldialog.ui \ src/qt/forms/sendcoinsdialog.ui \ src/qt/forms/addressbookpage.ui \ src/qt/forms/signverifymessagedialog.ui \ src/qt/forms/aboutdialog.ui \ src/qt/forms/editaddressdialog.ui \ src/qt/forms/transactiondescdialog.ui \ src/qt/forms/overviewpage.ui \ src/qt/forms/sendcoinsentry.ui \ src/qt/forms/askpassphrasedialog.ui \ src/qt/forms/rpcconsole.ui \ src/qt/forms/optionsdialog.ui
contains(USE_QRCODE, 1) { HEADERS += src/qt/qrcodedialog.h SOURCES += src/qt/qrcodedialog.cpp FORMS += src/qt/forms/qrcodedialog.ui }
CODECFORTR = UTF-8
# for lrelease/lupdate # also add new translations to src/qt/bitcoin.qrc under translations/ TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
isEmpty(QMAKE_LRELEASE) { win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease } isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale # automatically build translations, so they can be included in resource file TSQM.name = lrelease ${QMAKE_FILE_IN} TSQM.input = TRANSLATIONS TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} TSQM.CONFIG = no_link QMAKE_EXTRA_COMPILERS += TSQM
# "Other files" to show in Qt Creator OTHER_FILES += \ doc/*.rst doc/*.txt doc/README README.md res/bitcoin-qt.rc
# platform specific defaults, if not overridden on command line isEmpty(BOOST_LIB_SUFFIX) { macx:BOOST_LIB_SUFFIX = -mt windows:BOOST_LIB_SUFFIX = -mt }
isEmpty(BOOST_THREAD_LIB_SUFFIX) { win32:BOOST_THREAD_LIB_SUFFIX = _win32$$BOOST_LIB_SUFFIX else:BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX }
isEmpty(BDB_LIB_PATH) { macx:BDB_LIB_PATH = /opt/local/lib/db48 }
isEmpty(BDB_LIB_SUFFIX) { macx:BDB_LIB_SUFFIX = -4.8 }
isEmpty(BDB_INCLUDE_PATH) { macx:BDB_INCLUDE_PATH = /opt/local/include/db48 }
isEmpty(BOOST_LIB_PATH) { macx:BOOST_LIB_PATH = /opt/local/lib }
isEmpty(BOOST_INCLUDE_PATH) { macx:BOOST_INCLUDE_PATH = /opt/local/include }
windows:DEFINES += WIN32 windows:RC_FILE = src/qt/res/bitcoin-qt.rc
windows:!contains(MINGW_THREAD_BUGFIX, 0) { # At least qmake's win32-g++-cross profile is missing the -lmingwthrd # thread-safety flag. GCC has -mthreads to enable this, but it doesn't # work with static linking. -lmingwthrd must come BEFORE -lmingw, so # it is prepended to QMAKE_LIBS_QT_ENTRY. # It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes # any problems on some untested qmake profile now or in the future. DEFINES += _MT BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY }
macx:HEADERS += src/qt/macdockiconhandler.h macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0 macx:ICON = src/qt/res/icons/bitcoin.icns macx:TARGET = "Bitheriumclassic-Qt" macx:QMAKE_CFLAGS_THREAD += -pthread macx:QMAKE_LFLAGS_THREAD += -pthread macx:QMAKE_CXXFLAGS_THREAD += -pthread
# Set libraries and includes at end, to use platform-defined defaults if not overridden INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,) LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX # -lgdi32 has to happen after -lcrypto (see #681) windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32 LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
contains(RELEASE, 1) { !windows:!macx { # Linux: turn dynamic linking back on for c/c++ runtime libraries LIBS += -Wl,-Bdynamic } }
!windows:!macx { DEFINES += LINUX LIBS += -lrt -ldl }
system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)
it make error in compiling check it bro. with this qt file error is here /root/megacoin/src/leveldb/libmemenv.a: error adding symbols: Archive has no index; run ranlib to add one collect2: error: ld returned 1 exit status Makefile.Release:458: recipe for target 'release/mega-qt.exe' failed make: *** [release/mega-qt.exe] Error 1
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: NotATether on December 14, 2020, 04:57:22 PM
Ok I think I understand what you're trying to do, it's to compile this project https://github.com/megacoin/megacoin for mingw.
Let me create a clean Ubuntu 18.04 VM later today and I'll try to compile this myself and tell you the solutions to any errors I see.
One thing's for sure though, you certainly don't need MEX to compile this. We can just use the mingw-w64 apt package provided by Ubuntu. But I have to find the commands to make that work in practice.
Title: Re: I need help in releasing desktop wallet exe file error.
Post by: linz on December 14, 2020, 05:43:06 PM
Ok I think I understand what you're trying to do, it's to compile this project https://github.com/megacoin/megacoin for mingw.
Let me create a clean Ubuntu 18.04 VM later today and I'll try to compile this myself and tell you the solutions to any errors I see.
One thing's for sure though, you certainly don't need MEX to compile this. We can just use the mingw-w64 apt package provided by Ubuntu. But I have to find the commands to make that work in practice.
this one bro POWPOS https://github.com/coppercoinet/Coppercoin
|