Compilation errors on Debian GNU/Linux

Doubts, help and support about QuickBMS and other game research tools
berarma
Posts: 1
Joined: Thu Mar 10, 2022 1:08 pm

Compilation errors on Debian GNU/Linux

Post by berarma »

Hi.

I'm trying to compile QuickBMS 0.11 on Debian 11 (Bullseye) and there's many errors.

I've fixed some of them by following suggestions here: viewtopic.php?f=11&t=16282&p=68617&hilit=UNDIMP#p68617

Specifically, I did this:

While the second set of errors is related to the Amiga code, try commenting that whole part in perform.c starting from AMIGA_UNSQUASH to AMIGA_PACKFIRE (the one withing the #if branch).


Still I'm getting some errors. This is the output:

cc quickbms.c -m32 -s -O2 -fstack-protector-all -fno-unit-at-a-time -fno-omit-frame-pointer -fno-pie -fPIC -w -o quickbms \
\
-D_7ZIP_ST -DE_INVALIDARG=-1 \
\
-Ilibs/zlib libs/zlib/*.c compression/*.c* encryption/*.c* libs/lzma/LzmaDec.c libs/lzma/Lzma2Dec.c libs/lzma/Bra86.c libs/lzma/LzFind.c libs/lzma/LzmaEnc.c libs/lzma/Lzma2Enc.c libs/mspack/*.c libs/ppmd_7zip/*.c libs/ppmd/*.cpp libs/aplib/src/depacks.c libs/aplib/lib/coff/aplib.lib -Ilibs/brieflz/include libs/brieflz/src/depacks.c libs/brieflz/src/brieflz.c compression/jcalg1_static.lib libs/zziplib/*.c libs/bcl/*.c libs/szip/*.c libs/lzhl/*.cpp libs/tdcb/*.c extra/mem2mem.c libs/libkirk/*.c libs/7z_advancecomp/*.cc libs/iris/*.cpp libs/old_cabextract/lzx.c libs/mrci/*.cpp libs/lz4/*.c libs/snappy/snappy.cc libs/snappy/snappy-c.cc libs/snappy/snappy-stubs-internal.cc libs/snappy/snappy-sinksource.cc libs/mmini/mmini_huffman.c libs/mmini/mmini_lzl.c libs/clzw/lzw-dec.c libs/clzw/lzw-enc.c libs/lzlib/lzlib.c libs/blosc/blosclz.c libs/blosc/fastcopy.c libs/gipfeli/*.cc libs/liblzg/src/lib/decode.c libs/liblzg/src/lib/encode.c libs/liblzg/src/lib/checksum.c libs/doboz/*.cpp libs/sphlib/c/*.c libs/shadowforce/*.cpp libs/zstd_aluigi/common/*.c libs/zstd_aluigi/compress/*.c libs/zstd_aluigi/decompress/*.c libs/zstd_aluigi/dictBuilder/*.c libs/zstd_aluigi/legacy/*.c -Ilibs/zstd_aluigi -Ilibs/zstd_aluigi/common -Ilibs/zstd_aluigi/legacy libs/azo/unAZO.cpp libs/azo/Decoder/MainCodeD.cpp libs/azo/Common/x86Filter.cpp libs/nintendo_ds/*.c libs/ctw/*.c libs/grzip/libgrzip.c libs/heatshrink/heatshrink_decoder.c libs/heatshrink/heatshrink_encoder.c libs/libzling/*.cpp -Ilibs/ecrypt/include -Ilibs/libcsc -D_7Z_TYPES_ libs/libcsc/csc_dec.cpp libs/libcsc/csc_default_alloc.cpp libs/libcsc/csc_filters.cpp libs/libcsc/csc_memio.cpp -DDENSITY_FORCE_INLINE=inline -Drestrict=__restrict__ libs/density/src/*.c libs/density/src/algorithms/*.c libs/density/src/algorithms/chameleon/core/*.c libs/density/src/algorithms/cheetah/core/*.c libs/density/src/algorithms/lion/core/*.c libs/density/src/algorithms/lion/forms/*.c libs/density/src/buffers/*.c libs/density/src/structure/*.c libs/spookyhash/*.c -Ilibs/brotli/include libs/brotli/dec/*.c libs/brotli/enc/*.c libs/brotli/common/*.c libs/libbsc/adler32/adler32.cpp libs/libbsc/bwt/bwt.cpp libs/libbsc/coder/coder.cpp libs/libbsc/coder/qlfc/qlfc.cpp libs/libbsc/coder/qlfc/qlfc_model.cpp libs/libbsc/filters/detectors.cpp libs/libbsc/filters/preprocessing.cpp libs/libbsc/libbsc/libbsc.cpp libs/libbsc/lzp/lzp.cpp libs/libbsc/platform/platform.cpp libs/libbsc/st/st.cpp libs/shoco/shoco.c libs/ms-compress/src/*.cpp libs/lzjody/lzjody.c libs/lzjody/byteplane_xfrm.c disasm/disasm.c disasm/cmdlist.c disasm/assembl/assembl.c -DMYDOWN_SSL -DMYDOWN_GLOBAL_COOKIE libs/mydownlib/mydownlib.c libs/TurboRLE/trlec.c libs/TurboRLE/trled.c libs/TurboRLE/ext/mrle.c libs/lhasa/lib/*_decoder.c libs/lhasa/lib/crc16.c libs/dipperstein/*.c libs/liblzf/lzf_d.c libs/liblzf/lzf_c_best.c libs/zopfli/*.c libs/lzham_codec/lzhamcomp/*.cpp libs/lzham_codec/lzhamdecomp/*.cpp libs/lzham_codec/lzhamlib/*.cpp -Ilibs/lzham_codec/include -Ilibs/lzham_codec/lzhamcomp -Ilibs/lzham_codec/lzhamdecomp -DLZHAM_ANSI_CPLUSPLUS libs/dmsdos/*.c libs/tornado/Tornado.cpp libs/tornado/Common.cpp libs/PKLib/*.c extra/mybits.c libs/lz5/lz5*.c libs/lizard/*.c libs/ppmz2/*.c* libs/libdivsufsort/*.c libs/xxhash/*.c extra/xalloc.c libs/lzfse/src/*.c libs/hsel/myhsel.cpp libs/hsel/HSEL.cpp libs/glza/GLZAmodel.c -Ilibs/lzo/include libs/lzo/src/*.c -Ilibs/ucl -Ilibs/ucl/include libs/ucl/src/n*.c libs/ucl/src/alloc.c libs/liblzs/lzs-compression.c libs/liblzs/lzs-decompression.c libs/bzip2/*.c libs/zlib/contrib/infback9/*.c libs/lzw-ab/lzw-lib.c libs/cryptohash-sha1/*.c -Ilibs/capstone/include libs/capstone/*.c -DCAPSTONE_X86_ATT_DISABLE -DCAPSTONE_USE_SYS_DYN_MEM -DCAPSTONE_HAS_ARM -DCAPSTONE_HAS_ARM64 -DCAPSTONE_HAS_MIPS -DCAPSTONE_HAS_X86 -DCAPSTONE_HAS_POWERPC -DCAPSTONE_HAS_SPARC -DCAPSTONE_HAS_SYSZ -DCAPSTONE_HAS_XCORE libs/capstone/arch/AArch64/*.c libs/capstone/arch/ARM/*.c libs/capstone/arch/Mips/*.c libs/capstone/arch/PowerPC/*.c libs/capstone/arch/Sparc/*.c libs/capstone/arch/SystemZ/*.c libs/capstone/arch/X86/*.c libs/capstone/arch/XCore/*.c libs/lua/src/*.c extra/quickrva.c libs/tiny-regex-c/re.c \
\
\
\
-static-libstdc++ -lstdc++ -lm -lpthread -static-libgcc -lssl -lcrypto -DDISABLE_MCRYPT -DDISABLE_TOMCRYPT -ldl
/usr/bin/ld: /tmp/ccKXVubm.o: in function `os_tmpname':
loslib.c:(.text+0x207): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
/usr/bin/ld: /tmp/ccLHFekm.o: in function `_OodleLZ_Decompress':
quickbms.c:(.text+0x1b09a): undefined reference to `Kraken_Decompress'
/usr/bin/ld: /tmp/ccLHFekm.o: in function `amiga_unsquash':
quickbms.c:(.text+0x2c13a): undefined reference to `UnSquash'
collect2: error: ld returned 1 exit status
make: *** [Makefile:54: all] Error 1


I think I've followed compilations instructions correctly and I have all dependencies installed as explained here: http://aluigi.altervista.org/papers/quickbms.txt

Thanks for your help.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Compilation errors on Debian GNU/Linux

Post by aluigi »

It looks like your Makefile didn't get the following:

Code: Select all

ifeq ($(filter-out %86, $(shell uname -m)),)
EXTRA_TARGETS   = libs/amiga/amiga.s libs/powzix/*.cpp
CFLAGS   += -msse2
endif

or maybe it's not an x86/x64 platform and for some reasons the #ifdef in quickbms enabled both amiga and kraken by mistake.

Long story short, if you are on x86/x64 just remove that "ifeq"/"endif" in Makefile.