meganz / MEGAcmd

Command Line Interactive and Scriptable Application to access MEGA
Other
1.94k stars 407 forks source link

Make Error - ARM #652

Open Angu0083 opened 2 years ago

Angu0083 commented 2 years ago

root@deb:/tmp/MEGAcmd# make make all-recursive make[1]: Entering directory '/tmp/MEGAcmd' Making all in sdk make[2]: Entering directory '/tmp/MEGAcmd/sdk' make all-recursive make[3]: Entering directory '/tmp/MEGAcmd/sdk' Making all in include make[4]: Entering directory '/tmp/MEGAcmd/sdk/include' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/tmp/MEGAcmd/sdk/include' make[4]: Entering directory '/tmp/MEGAcmd/sdk' CXXLD examples/megacli /usr/bin/ld: ./src/.libs/libmega.so: undefined reference to mega::EdDSA::TLV_KEY[abi:cxx11]' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference tomega::EdDSA::~EdDSA()' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference to mega::EdDSA::signKey(unsigned char const*, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, unsigned long)' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference tomega::ECDH::ECDH(unsigned char)' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference to `mega::EdDSA::verifyKey(unsigned char const, unsigned long long, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, unsigned char const)' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference to mega::ECDH::TLV_KEY[abi:cxx11]' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference tomega::EdDSA::EdDSA(mega::PrnGen&, unsigned char*)' /usr/bin/ld: ./src/.libs/libmega.so: undefined reference to `mega::ECDH::~ECDH()' collect2: error: ld returned 1 exit status make[4]: [Makefile:2037: examples/megacli] Error 1 make[4]: Leaving directory '/tmp/MEGAcmd/sdk' make[3]: [Makefile:3383: all-recursive] Error 1 make[3]: Leaving directory '/tmp/MEGAcmd/sdk' make[2]: [Makefile:1534: all] Error 2 make[2]: Leaving directory '/tmp/MEGAcmd/sdk' make[1]: [Makefile:1471: all-recursive] Error 1 make[1]: Leaving directory '/tmp/MEGAcmd' make: *** [Makefile:707: all] Error 2

Guoan-Wu commented 2 years ago

Hi, Augu0083 I also meet this issue today. Did you solve it? If yes, could you please share your method for that?

tejonaco commented 2 years ago

Me have this problem too on manjaro arm64

marc1uk commented 1 year ago

Just tried to build mega-cmd on manjaro arm64. I configured with:

./configure --build=aarch64-unknown-linux-gnu --disable-dependency-tracking

Subsequently make had a couple of issues with ffmpeg:

src/gfx/freeimage.cpp: In member function 'bool mega::GfxProcFreeImage::readbitmapFfmpeg(mega::FileAccess*, const mega::LocalP
ath&, int)':
src/gfx/freeimage.cpp:239:44: error: invalid conversion from 'const AVCodec*' to 'AVCodec*' [-fpermissive]
  239 |     AVCodec* decoder = avcodec_find_decoder(codecId);
      |                        ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
      |                                            |
      |                                            const AVCodec*
src/gfx/freeimage.cpp:256:18: error: 'AVStream' {aka 'struct AVStream'} has no member named 'skip_to_keyframe'
  256 |     videoStream->skip_to_keyframe = true;
      |                  ^~~~~~~~~~~~~~~~

the former was fixed just changing line 239 to

AVCodec* decoder = const_cast<AVCodec*>(avcodec_find_decoder(codecId));

and for the latter (which has an open issue #2576 on the mega sdk repo) I just commented out line 256. After those two changes build completed successfully and it seems like mega-cmd runs correctly.

UltimaHoarder commented 2 months ago

I used the following commands on my Pi4B Fedora aarch64 setup

git clone https://github.com/meganz/MEGAcmd.git
cd MEGAcmd && git submodule update --init --recursive

sh autogen.sh
./configure --build=aarch64-unknown-linux-gnu --disable-dependency-tracking
make
make install