Comments (10)
Hi,
MEGAsync uses the MEGA C++ SDK as a submodule (a Git repository inside the git repository of MEGAsync). To download all the code needed to build MEGAsync, after cloning the repository:
git clone https://github.com/meganz/MEGAsync.git
It is needed to enter the folder of the repo:
cd MEGAsync
and type:
git submodule update --init --recursive
After that, all the code would be downloaded and the compilation of MEGAsync should success.
I hope this helps.
from megasync.
Excellent report! Hope this gets fixed and properly documented. Thanks for going through the steps so other people know it isn't working as is.
from megasync.
Hi! I have added the missing header but the compiler is still complaining about missing references. Is there a workaround to overcome the issues mentioned by @dzielin and build the project? If so, would you share the procedure? Thank you!
from megasync.
Here more details about my attempt to compile MEGASync.
Following @dzielin steps, I get to this point:
> make
cd MEGASync/ && /usr/lib/x86_64-linux-gnu/qt4/bin/qmake /tmp/MEGASync/src/MEGASync/MEGASync.pro -o Makefile
WARNING: /tmp/MEGASync/src/MEGASync/MEGASync.pro:50: Unable to find file for inclusion mega/bindings/qt/sdk.pri
Project MESSAGE: Installing desktop files.
cd MEGASync/ && make -f Makefile
make[1]: Entering directory `/tmp/MEGASync/src/MEGASync'
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/ActiveTransfer.ui -o ui_ActiveTransfer.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/InfoDialog.ui -o ui_InfoDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/RecentFile.ui -o ui_RecentFile.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/TransferProgressBar.ui -o ui_TransferProgressBar.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/UsageProgressBar.ui -o ui_UsageProgressBar.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/NodeSelector.ui -o ui_NodeSelector.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/FolderBinder.ui -o ui_FolderBinder.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/BindFolderDialog.ui -o ui_BindFolderDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/UploadToMegaDialog.ui -o ui_UploadToMegaDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/PasteMegaLinksDialog.ui -o ui_PasteMegaLinksDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/ImportMegaLinksDialog.ui -o ui_ImportMegaLinksDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/ImportListWidgetItem.ui -o ui_ImportListWidgetItem.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/CrashReportDialog.ui -o ui_CrashReportDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/SetupWizard.ui -o ui_SetupWizard.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/SettingsDialog.ui -o ui_SettingsDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/AccountDetailsDialog.ui -o ui_AccountDetailsDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/DownloadFromMegaDialog.ui -o ui_DownloadFromMegaDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/SizeLimitDialog.ui -o ui_SizeLimitDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/MessageBox.ui -o ui_MessageBox.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/InfoOverQuotaDialog.ui -o ui_InfoOverQuotaDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/ChangeLogDialog.ui -o ui_ChangeLogDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/GuestWidget.ui -o ui_GuestWidget.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/StreamingFromMegaDialog.ui -o ui_StreamingFromMegaDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/PermissionsDialog.ui -o ui_PermissionsDialog.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/PermissionsWidget.ui -o ui_PermissionsWidget.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic gui/linux/ConfirmSSLexception.ui -o ui_ConfirmSSLexception.h
g++ -c -m64 -pipe -g -O2 -Wall -W -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x000000 -DUSE_DBUS -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtDBus -I/usr/include/qt4 -Igui -Igui/linux -Icontrol -Iplatform -Igoogle_breakpad -Iqtlockedfile -I. -I. -I. -o SettingsDialog.o gui/SettingsDialog.cpp
In file included from ./MegaApplication.h:16:0,
from gui/SettingsDialog.cpp:13:
./gui/NodeSelector.h:10:35: fatal error: QTMegaRequestListener.h: No such file or directory
#include "QTMegaRequestListener.h"
^
compilation terminated.
make[1]: *** [SettingsDialog.o] Error 1
make[1]: Leaving directory `/tmp/MEGASync/src/MEGASync'
make: *** [sub-MEGASync-make_default] Error 2
I found that the missing header QTMegaRequestListener.h is actually in /tmp/MEGASync/mega/bindings/qt, so I add the include directory to the Makefile. Running make again:
> make
cd MEGASync/ && make -f Makefile
make[1]: Entering directory `/tmp/MEGASync/src/MEGASync'
g++ -c -m64 -pipe -g -O2 -Wall -W -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x000000 -DUSE_DBUS -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtDBus -I/usr/include/qt4 -Igui -Igui/linux -Icontrol -Iplatform -Igoogle_breakpad -Iqtlockedfile -I. -I. -I. -I/tmp/MEGASync/mega/bindings/qt -o SettingsDialog.o gui/SettingsDialog.cpp
gui/SettingsDialog.cpp: In member function ‘bool SettingsDialog::saveSettings()’:
gui/SettingsDialog.cpp:1090:38: error: ‘class mega::MegaApi’ has no member named ‘removeSync’
megaApi->removeSync(node);
^
gui/SettingsDialog.cpp:1105:34: error: ‘class mega::MegaApi’ has no member named ‘removeSync’
megaApi->removeSync(node);
^
gui/SettingsDialog.cpp:1158:38: error: ‘class mega::MegaApi’ has no member named ‘syncFolder’
megaApi->syncFolder(localFolderPath.toUtf8().constData(), node);
^
gui/SettingsDialog.cpp:1176:34: error: ‘class mega::MegaApi’ has no member named ‘syncFolder’
megaApi->syncFolder(localFolderPath.toUtf8().constData(), node);
^
gui/SettingsDialog.cpp:1235:22: error: ‘class mega::MegaApi’ has no member named ‘setExcludedNames’
megaApi->setExcludedNames(&vExclusions);
^
gui/SettingsDialog.cpp:1242:63: warning: statement has no effect [-Wunused-value]
QT_TR_NOOP("Do you want to restart MEGAsync now?");
^
gui/SettingsDialog.cpp:1256:26: error: ‘class mega::MegaApi’ has no member named ‘setExclusionLowerSizeLimit’
megaApi->setExclusionLowerSizeLimit(preferences->lowerSizeLimitValue() * pow((float)1024, preferences->lowerSizeLimitUnit()));
^
gui/SettingsDialog.cpp:1260:26: error: ‘class mega::MegaApi’ has no member named ‘setExclusionLowerSizeLimit’
megaApi->setExclusionLowerSizeLimit(0);
^
gui/SettingsDialog.cpp:1265:26: error: ‘class mega::MegaApi’ has no member named ‘setExclusionUpperSizeLimit’
megaApi->setExclusionUpperSizeLimit(preferences->upperSizeLimitValue() * pow((float)1024, preferences->upperSizeLimitUnit()));
^
gui/SettingsDialog.cpp:1269:26: error: ‘class mega::MegaApi’ has no member named ‘setExclusionUpperSizeLimit’
megaApi->setExclusionUpperSizeLimit(0);
^
make[1]: *** [SettingsDialog.o] Error 1
make[1]: Leaving directory `/tmp/MEGASync/src/MEGASync'
make: *** [sub-MEGASync-make_default] Error 2
The problem is that some constants are not defined, in particular ENABLE_SYNC
and HAVE_LIBUV
. I add them to the Makefile and run make again, but I get a lot of linker errors about missing references. Adding -lmega
to the Makefile reduces the errors, but I still get some:
> make
cd MEGASync/ && make -f Makefile
make[1]: Entering directory `/tmp/MEGASync/src/MEGASync'
g++ -m64 -Wl,-O1 -o megasync SettingsDialog.o ActiveTransfer.o InfoDialog.o RecentFile.o TransferProgressBar.o UsageProgressBar.o SetupWizard.o NodeSelector.o FolderBinder.o BindFolderDialog.o UploadToMegaDialog.o PasteMegaLinksDialog.o ImportMegaLinksDialog.o ImportListWidgetItem.o CrashReportDialog.o MultiQFileDialog.o MegaProxyStyle.o AccountDetailsDialog.o DownloadFromMegaDialog.o SizeLimitDialog.o UsageWidget.o MessageBox.o InfoOverQuotaDialog.o QMegaModel.o MegaItem.o ChangeLogDialog.o GuestWidget.o StreamingFromMegaDialog.o ConfirmSSLexception.o PermissionsDialog.o PermissionsWidget.o HTTPServer.o Preferences.o LinkProcessor.o MegaUploader.o UpdateTask.o EncryptedSettings.o CrashHandler.o ExportProcessor.o Utilities.o MegaDownloader.o MegaSyncLogger.o ConnectivityChecker.o notificator.o LinuxPlatform.o ExtServer.o NotifyServer.o crash_generation_client.o exception_handler.o minidump_descriptor.o minidump_writer.o linux_dumper.o linux_ptrace_dumper.o log.o minidump_file_writer.o linux_libc_support.o file_id.o memory_mapped_file.o safe_readlink.o guid_creator.o elfutils.o string_conversion.o convert_UTF.o qtlockedfile.o qtlockedfile_unix.o MegaApplication.o moc_SettingsDialog.o moc_ActiveTransfer.o moc_InfoDialog.o moc_RecentFile.o moc_TransferProgressBar.o moc_UsageProgressBar.o moc_SetupWizard.o moc_NodeSelector.o moc_FolderBinder.o moc_BindFolderDialog.o moc_UploadToMegaDialog.o moc_PasteMegaLinksDialog.o moc_ImportMegaLinksDialog.o moc_ImportListWidgetItem.o moc_CrashReportDialog.o moc_MultiQFileDialog.o moc_MegaProxyStyle.o moc_AccountDetailsDialog.o moc_DownloadFromMegaDialog.o moc_SizeLimitDialog.o moc_UsageWidget.o moc_MessageBox.o moc_InfoOverQuotaDialog.o moc_QMegaModel.o moc_ChangeLogDialog.o moc_GuestWidget.o moc_StreamingFromMegaDialog.o moc_ConfirmSSLexception.o moc_PermissionsDialog.o moc_PermissionsWidget.o moc_HTTPServer.o moc_Preferences.o moc_LinkProcessor.o moc_MegaUploader.o moc_UpdateTask.o moc_EncryptedSettings.o moc_CrashHandler.o moc_ExportProcessor.o moc_MegaDownloader.o moc_MegaSyncLogger.o moc_ConnectivityChecker.o moc_notificator.o moc_ExtServer.o moc_NotifyServer.o moc_MegaApplication.o qrc_Resources_linux.o -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -lmega -lssl -lcrypto -lQtDBus -lQtGui -lQtNetwork -lQtCore -lpthread
SetupWizard.o: In function `SetupWizard::SetupWizard(MegaApplication*, QWidget*)':
/tmp/MEGASync/src/MEGASync/gui/SetupWizard.cpp:29: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
NodeSelector.o: In function `NodeSelector::NodeSelector(mega::MegaApi*, int, QWidget*)':
/tmp/MEGASync/src/MEGASync/gui/NodeSelector.cpp:22: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
UploadToMegaDialog.o: In function `UploadToMegaDialog::UploadToMegaDialog(mega::MegaApi*, QWidget*)':
/tmp/MEGASync/src/MEGASync/gui/UploadToMegaDialog.cpp:16: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
StreamingFromMegaDialog.o: In function `StreamingFromMegaDialog::StreamingFromMegaDialog(mega::MegaApi*, QWidget*)':
/tmp/MEGASync/src/MEGASync/gui/StreamingFromMegaDialog.cpp:28: undefined reference to `mega::MegaApi::httpServerStart(bool, int)'
/tmp/MEGASync/src/MEGASync/gui/StreamingFromMegaDialog.cpp:33: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
StreamingFromMegaDialog.o: In function `StreamingFromMegaDialog::~StreamingFromMegaDialog()':
/tmp/MEGASync/src/MEGASync/gui/StreamingFromMegaDialog.cpp:38: undefined reference to `mega::MegaApi::httpServerStop()'
StreamingFromMegaDialog.o: In function `StreamingFromMegaDialog::generateStreamURL()':
/tmp/MEGASync/src/MEGASync/gui/StreamingFromMegaDialog.cpp:225: undefined reference to `mega::MegaApi::httpServerGetLocalLink(mega::MegaNode*)'
LinkProcessor.o: In function `LinkProcessor::LinkProcessor(mega::MegaApi*, mega::MegaApi*, QStringList)':
/tmp/MEGASync/src/MEGASync/control/LinkProcessor.cpp:25: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
MegaUploader.o: In function `MegaUploader::MegaUploader(mega::MegaApi*)':
/tmp/MEGASync/src/MEGASync/control/MegaUploader.cpp:18: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
ExportProcessor.o: In function `ExportProcessor::ExportProcessor(mega::MegaApi*, QStringList)':
/tmp/MEGASync/src/MEGASync/control/ExportProcessor.cpp:16: undefined reference to `mega::QTMegaRequestListener::QTMegaRequestListener(mega::MegaApi*, mega::MegaRequestListener*)'
LinuxPlatform.o: In function `LinuxPlatform::getDefaultOpenApp(QString)':
/tmp/MEGASync/src/MEGASync/platform/linux/LinuxPlatform.cpp:156: undefined reference to `mega::MegaApi::getMimeType(char const*)'
MegaApplication.o: In function `MEGASyncDelegateListener::MEGASyncDelegateListener(mega::MegaApi*, mega::MegaListener*)':
/tmp/MEGASync/src/MEGASync/MegaApplication.cpp:5002: undefined reference to `mega::QTMegaListener::QTMegaListener(mega::MegaApi*, mega::MegaListener*)'
MegaApplication.o: In function `MEGASyncDelegateListener':
/tmp/MEGASync/src/MEGASync/MegaApplication.cpp:5002: undefined reference to `mega::QTMegaListener::QTMegaListener(mega::MegaApi*, mega::MegaListener*)'
/tmp/MEGASync/src/MEGASync/MegaApplication.cpp:5002: undefined reference to `mega::QTMegaListener::QTMegaListener(mega::MegaApi*, mega::MegaListener*)'
MegaApplication.o: In function `MEGASyncDelegateListener::onRequestFinish(mega::MegaApi*, mega::MegaRequest*, mega::MegaError*)':
/tmp/MEGASync/src/MEGASync/MegaApplication.cpp:5007: undefined reference to `mega::QTMegaListener::onRequestFinish(mega::MegaApi*, mega::MegaRequest*, mega::MegaError*)'
MegaApplication.o: In function `MEGASyncDelegateListener::~MEGASyncDelegateListener()':
/tmp/MEGASync/src/MEGASync/MegaApplication.h:287: undefined reference to `mega::QTMegaListener::~QTMegaListener()'
MegaApplication.o: In function `~MEGASyncDelegateListener':
/tmp/MEGASync/src/MEGASync/MegaApplication.h:287: undefined reference to `mega::QTMegaListener::~QTMegaListener()'
MegaApplication.o:(.rodata._ZTI24MEGASyncDelegateListener[_ZTI24MEGASyncDelegateListener]+0x10): undefined reference to `typeinfo for mega::QTMegaListener'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x10): undefined reference to `mega::QTMegaListener::metaObject() const'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x18): undefined reference to `mega::QTMegaListener::qt_metacast(char const*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x20): undefined reference to `mega::QTMegaListener::qt_metacall(QMetaObject::Call, int, void**)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x58): undefined reference to `mega::QTMegaListener::customEvent(QEvent*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x70): undefined reference to `mega::QTMegaListener::onRequestStart(mega::MegaApi*, mega::MegaRequest*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x80): undefined reference to `mega::QTMegaListener::onRequestUpdate(mega::MegaApi*, mega::MegaRequest*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x88): undefined reference to `mega::QTMegaListener::onRequestTemporaryError(mega::MegaApi*, mega::MegaRequest*, mega::MegaError*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x90): undefined reference to `mega::QTMegaListener::onTransferStart(mega::MegaApi*, mega::MegaTransfer*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x98): undefined reference to `mega::QTMegaListener::onTransferFinish(mega::MegaApi*, mega::MegaTransfer*, mega::MegaError*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xa0): undefined reference to `mega::QTMegaListener::onTransferUpdate(mega::MegaApi*, mega::MegaTransfer*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xa8): undefined reference to `mega::QTMegaListener::onTransferTemporaryError(mega::MegaApi*, mega::MegaTransfer*, mega::MegaError*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xb0): undefined reference to `mega::QTMegaListener::onUsersUpdate(mega::MegaApi*, mega::MegaUserList*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xb8): undefined reference to `mega::QTMegaListener::onNodesUpdate(mega::MegaApi*, mega::MegaNodeList*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xc0): undefined reference to `mega::QTMegaListener::onAccountUpdate(mega::MegaApi*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xc8): undefined reference to `mega::QTMegaListener::onReloadNeeded(mega::MegaApi*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xd0): undefined reference to `mega::QTMegaListener::onSyncStateChanged(mega::MegaApi*, mega::MegaSync*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xd8): undefined reference to `mega::QTMegaListener::onSyncFileStateChanged(mega::MegaApi*, mega::MegaSync*, char const*, int)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xe0): undefined reference to `mega::QTMegaListener::onGlobalSyncStateChanged(mega::MegaApi*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0xf8): undefined reference to `non-virtual thunk to mega::QTMegaListener::onRequestStart(mega::MegaApi*, mega::MegaRequest*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x108): undefined reference to `non-virtual thunk to mega::QTMegaListener::onRequestUpdate(mega::MegaApi*, mega::MegaRequest*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x110): undefined reference to `non-virtual thunk to mega::QTMegaListener::onRequestTemporaryError(mega::MegaApi*, mega::MegaRequest*, mega::MegaError*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x118): undefined reference to `non-virtual thunk to mega::QTMegaListener::onTransferStart(mega::MegaApi*, mega::MegaTransfer*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x120): undefined reference to `non-virtual thunk to mega::QTMegaListener::onTransferFinish(mega::MegaApi*, mega::MegaTransfer*, mega::MegaError*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x128): undefined reference to `non-virtual thunk to mega::QTMegaListener::onTransferUpdate(mega::MegaApi*, mega::MegaTransfer*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x130): undefined reference to `non-virtual thunk to mega::QTMegaListener::onTransferTemporaryError(mega::MegaApi*, mega::MegaTransfer*, mega::MegaError*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x138): undefined reference to `non-virtual thunk to mega::QTMegaListener::onUsersUpdate(mega::MegaApi*, mega::MegaUserList*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x140): undefined reference to `non-virtual thunk to mega::QTMegaListener::onNodesUpdate(mega::MegaApi*, mega::MegaNodeList*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x148): undefined reference to `non-virtual thunk to mega::QTMegaListener::onAccountUpdate(mega::MegaApi*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x158): undefined reference to `non-virtual thunk to mega::QTMegaListener::onReloadNeeded(mega::MegaApi*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x160): undefined reference to `non-virtual thunk to mega::QTMegaListener::onSyncFileStateChanged(mega::MegaApi*, mega::MegaSync*, char const*, int)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x170): undefined reference to `non-virtual thunk to mega::QTMegaListener::onSyncStateChanged(mega::MegaApi*, mega::MegaSync*)'
MegaApplication.o:(.rodata._ZTV24MEGASyncDelegateListener[_ZTV24MEGASyncDelegateListener]+0x178): undefined reference to `non-virtual thunk to mega::QTMegaListener::onGlobalSyncStateChanged(mega::MegaApi*)'
collect2: error: ld returned 1 exit status
make[1]: *** [megasync] Error 1
make[1]: Leaving directory `/tmp/MEGASync/src/MEGASync'
make: *** [sub-MEGASync-make_default] Error 2
Ideas?
Thank you.
from megasync.
Tried that in my initial run-through. No luck, hence building the SDK independently.
Cloning into 'src/MEGASync/mega'...
The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.131' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of '[email protected]:meganz/sdk.git' into submodule path 'src/MEGASync/mega' failed
.gitmodules needs to be updated from:
[submodule "src/MEGASync/mega"]
path = src/MEGASync/mega
url = [email protected]:meganz/sdk.git
branch = master
to
[submodule "src/MEGASync/mega"]
path = src/MEGASync/mega
url = https://github.com/meganz/sdk.git
branch = master
Looks like I should have put it in ./MEGAsync/src/MEGASync/mega/ instead of ./MEGAsync/mega/ when I cloned it. With that small change to the gitmodules file, though, fetching the SDK independently isn't required and things seem to build successfully.
from megasync.
OK, I did it!
I just followed last @dzielin commend and added -ldl
to the Makefile libs.
Thank you very much!
from megasync.
@dzielin @evils0ul
You can follow Arch Linux PKGBUILD instructions from here as an example.
from megasync.
Compile steps worked for me on Ubuntu 14.04 out of the box (per the README file)
from megasync.
I've created a recipe to compile megasync for Ubuntu 16.10 using Docker.
It might interest some, might not be perfect so comments and improvement are accepted
https://github.com/codingtony/megasync-docker-compile
from megasync.
The instructions are missing a few things to get running on Fedora 39 (probably others) as well I think. Some of them are named differently but running configure shows there are additional I had to install.
I think I have these right. This is in retrospect after getting configure to work so I may have a mistake. These are what I installed that satisfied the dependencies.
- libc-ares-dev -> c-ares-devel
- libsqlite3-dev -> libsqlite3x-devel
- libcrypto++-dev -> cryptopp-devel
These I think aren't in the dependencies listed for Ubuntu but don't seem to be there on a workstation Fedora install.
- libcurl-devel
- freeimage-devel
- gucharmap-devel
- qt5-qtx11extras
- qt5-qtx11extras-devel
- libsodium-devel
After that...
MEGAsync/src on master
❯ qmake-qt5 MEGASync/MEGASync.pro
Project MESSAGE: THIRDPARTY_VCPKG_BASE_PATH: ~/Projects/MEGAsync/src/MEGASync/../../../3rdParty_desktop
Project MESSAGE: VCPKG_TRIPLET: x64-linux
Project MESSAGE: vcpkg not used
Project MESSAGE: Installing desktop files.
Not sure if it would be desired but I could try a PR to fill out some of the build documentation on Fedora if I get some time to do so.
The reason I went through trying to build this is due to errors using the flatpak build on Fedora / Gnome. It wants to do a systray icon which is a thing but that's not why it's broken for me. Anytime I want to select a new sync directory it opens a system dialog, you select it then it opens a QT file dialog that can't see any of my directories. Not sure if the build solves my issue but at least I can build it with these dependencies. Haven't tried my local build to sort it out but I have it building!
from megasync.
Related Issues (20)
- Error "megasync: error while loading shared libraries: libicuuc.so.74: cannot open shared object file: No such file or directory" HOT 8
- Megasync 5.2.1 crashes after a few seconds on MacOS HOT 1
- Arch linux: symbol lookup error: megasync: undefined symbol: u_foldCase_74 HOT 3
- Upgrading to QT6 dependencies on the roadmap? HOT 3
- MEGAsync.log is 1.56 gb HOT 1
- Mega Sync Desktop App Crashing HOT 2
- Sync Issues when sync/backup locally encrypted files HOT 1
- Windows 11 can't upload files HOT 2
- uploading file size limits? HOT 3
- Release 4.13.0.0 ? HOT 1
- Linux HOT 1
- While dolphin-megasync is installed, there's no context menu, nor status icons for MEGA folders, in Tuxedo OS (22.04 + Plasma 6) HOT 1
- MEGAsync hallucinating filesystem mismatch, leading to sync creation failure HOT 10
- Pause syncing instead of signing out on VPN connection? HOT 3
- No longer able to sync anything on Linux(es) HOT 1
- scheduled backup HOT 1
- Version 5.3 as bad as 5.2
- Unable to get anything open in menu HOT 1
- Is there any way to haev the synchronized folder to act as a virtual drive? HOT 1
- the display of exclusion settings is corrupted when the language is Japanese HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from megasync.