yacreader icon indicating copy to clipboard operation
yacreader copied to clipboard

Missing symbols when linking YACReaderLibraryServer on odroid XU4

Open Witos opened this issue 4 years ago • 5 comments

The error message: linking YACReaderLibraryServer /usr/bin/ld: uncompress-rar.o: in function rar_parse_codes': uncompress-rar.c:(.text+0x728): undefined reference to Ppmd7a_RangeDec_Init' /usr/bin/ld: uncompress-rar.c:(.text+0xcbc): undefined reference to Ppmd7a_RangeDec_Init' /usr/bin/ld: uncompress-rar.o: in function rar_expand': uncompress-rar.c:(.text+0x1b94): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x1e88): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x27b8): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x2818): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x285c): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.o:uncompress-rar.c:(.text+0x286c): more undefined references to Ppmd7a_DecodeSymbol' follow collect2: error: ld returned 1 exit status make: *** [Makefile:711: YACReaderLibraryServer] Error 1

The master unarr is at compressed_archive/unarr Toolchain: gcc (GCC) 10.2.0 Architecture: Linux alarm 4.14.180-3-ARCH #1 SMP PREEMPT Sat Jun 5 22:29:47 UTC 2021 armv7l GNU/Linux

Witos avatar Dec 30 '21 17:12 Witos

That is happening because you are using the latest git version of Unarr which has a new file, lzmasdk/Ppmd7a.c

This is missing from the file list for the embedded Unarr build, so linking fails. You can either add it or you can build and install Unarr as well library, which also should give you better performance.

Am 30. Dezember 2021 18:20:37 MEZ schrieb "Piotr Witosławski" @.***>:

The error message: linking YACReaderLibraryServer /usr/bin/ld: uncompress-rar.o: in function rar_parse_codes': uncompress-rar.c:(.text+0x728): undefined reference to Ppmd7a_RangeDec_Init' /usr/bin/ld: uncompress-rar.c:(.text+0xcbc): undefined reference to Ppmd7a_RangeDec_Init' /usr/bin/ld: uncompress-rar.o: in function rar_expand': uncompress-rar.c:(.text+0x1b94): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x1e88): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x27b8): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x2818): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.c:(.text+0x285c): undefined reference to Ppmd7a_DecodeSymbol' /usr/bin/ld: uncompress-rar.o:uncompress-rar.c:(.text+0x286c): more undefined references to Ppmd7a_DecodeSymbol' follow collect2: error: ld returned 1 exit status make: *** [Makefile:711: YACReaderLibraryServer] Error 1

The master unarr is at compressed_archive/unarr Toolchain: gcc (GCC) 10.2.0 Architecture: Linux alarm 4.14.180-3-ARCH #1 SMP PREEMPT Sat Jun 5 22:29:47 UTC 2021 armv7l GNU/Linux

-- Reply to this email directly or view it on GitHub: https://github.com/YACReader/yacreader/issues/293 You are receiving this because you are subscribed to this thread.

Message ID: @.***>

selmf avatar Dec 30 '21 17:12 selmf

Great! Thanks, it helped. Exactly this patch: diff --git a/compressed_archive/unarr/unarr.pro b/compressed_archive/unarr/unarr.pro index d23c3c19..4a18a937 100644 --- a/compressed_archive/unarr/unarr.pro +++ b/compressed_archive/unarr/unarr.pro @@ -30,6 +30,7 @@ SOURCES+=$$PWD/unarr-master/common/conv.c
$$PWD/unarr-master/lzmasdk/Ppmd8.c
$$PWD/unarr-master/lzmasdk/LzmaDec.c
$$PWD/unarr-master/lzmasdk/Ppmd7Dec.c\

  •           $$PWD/unarr-master/lzmasdk/Ppmd7aDec.c\
              $$PWD/unarr-master/lzmasdk/Ppmd8Dec.c\
              $$PWD/unarr-master/zip/inflate.c\
              $$PWD/unarr-master/zip/parse-zip.c\
    

Witos avatar Dec 30 '21 19:12 Witos

I'm having the same issue when trying to compile for ARM32. Can you tell me how to apply this patch? Thanks!

xthursdayx avatar Dec 02 '22 23:12 xthursdayx

The simplest way is to just edit compressed_archive/unarr/unarr.pro and add the missing line.

The slightly advanced way is to use the patch tool from the command line to apply the patch. It ain't rocket science and there is a ton of tutorials on the web on how to do that, so I'm not going to explain that here. Just google away and I'm sure you'll find a solution.

selmf avatar Dec 17 '22 12:12 selmf

Yes, thanks, fixed it already

Witos avatar Dec 17 '22 13:12 Witos