2

For some reasons, I want to build a static shared library: a self sustain library that without any external dependent library.

My build environment is alpine linux. (I believe that gcc is /usr/bin/aarch64-alpine-linux-musl-gcc)

I build my shared library as follows:

gcc -fpic -c jpg_to_bmp.c -o jpg_to_bmp.o
ld -fpic -shared -static -lc -lstdc++ jpg_to_bmp.o FreeImage/Dist/libfreeimage.a -o libmy_img_static.so
gcc -I ./ -L ./ main.c -o main.o

However

LD_LIBRARY_PATH=`pwd` ./main test.jpg test.bmp

dies with Segmentation fault

if I link the shared library without -static -lc -lstdc++

ld -fpic -shared -static -lc -lstdc++ jpg_to_bmp.o FreeImage/Dist/libfreeimage.a -o libmy_img_static.so

Everything works fine.

How do I build a static shared library(self-sustain) using musl ? Did I miss any step or flag ?

prgbenz
  • 1,129
  • 4
  • 13
  • 27

0 Answers0