Мне нужно скомпилировать код на С ++ с помощью uClibc ++ и musl.
Чтобы сделать это, сначала я должен скомпилировать uClibc ++ против musl.
Но, пытаясь это сделать, я столкнулся с несколькими ошибками, такими как отсутствие __snprintf_chk
и __cxa_thread_atexit_impl
Короче говоря: как вы думаете, сделать это правильно?
Я уверена, что это связано с флагами g ++, но какие?
Это то, что я пробовал до сих пор (для mips):
- Я собрал мусл для MIPS
- Передал musl-gcc в
CROSS_COMPILE
параметр uClibc ++ make. Я также создаю musl-g ++ по тому же пути (который в основном аналогичен musl-gcc с тем же файлом .spec, но использует mips-linux-gnu-g ++, а не gcc)
Мой .spec
файл является автоматически сгенерированным musl, я не взял его.
Это моя команда компиляции:
make install CROSS_COMPILE=/path/to/my/musl/mips CPU_CFLAGS=' -lsupc++ -lgcc -nostdlib -nostdinc -nostdinc++ -mmusl -I/path/to/musl/include -Os -fno-use-cxa-atexit -fno-use-stack-protector -D_FORTIFY_SOURC=0 -L/path/to/my/musl/lib -lc
Выход:
In function '__cxa_thread_atexit':
Undefiend reference to __cxa_thread_atexit_impl
In function 'd_append_chk':
Undefiend reference to __sprintf_chk