Я пытаюсь кросс-компилировать библиотеку libconfig для запуска на архитектуре Mips64 (Big endian).
Я только что скачал отсюда версию 1.7.2 libconfig: https://hyperrealm.github.io/libconfig/
Я уже установил кросс-компилятор.Он находится здесь:
/opt/cross/mips64-linux/bin/mips64-linux-gcc
Я разархивировал файл, используя
tar -xzf libconfig-1.7.2.tar.gz
Чтобы настроить Makefile, я выполнил следующую команду:
./configure --host=mips64-linux --disable-cxx
FromНасколько я понимаю, это отключит компиляцию c ++, а также кросс-компиляцию вывода для mips64, что мне и нужно.
Конфигурация работает нормально и создает Makefile.
Затем я запускаюсделайте и получите следующую ошибку:
make all-recursive
make[1]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2'
Making all in lib
make[2]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/lib'
make all-am
make[3]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/lib'
CC libconfig_la-libconfig.lo
CCLD libconfig.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/lib'
make[2]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/lib'
Making all in doc
make[2]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/doc'
Making all in tinytest
make[2]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/tinytest'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/tinytest'
Making all in tests
make[2]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/tests'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/tests'
Making all in examples
make[2]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/examples'
Making all in c
make[3]: Entering directory '/home/brianw/Downloads/libconfig-1.7.2/examples/c'
CCLD example1
../../lib/.libs/libconfig.so: undefined reference to `scanctx_cleanup'
../../lib/.libs/libconfig.so: undefined reference to `format_double'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yy_scan_string'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yyset_lineno'
../../lib/.libs/libconfig.so: undefined reference to `scanctx_init'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yylex_init_extra'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yyrestart'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yy_delete_buffer'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yylex_destroy'
../../lib/.libs/libconfig.so: undefined reference to `__delete_vec'
../../lib/.libs/libconfig.so: undefined reference to `libconfig_yyparse'
../../lib/.libs/libconfig.so: undefined reference to `scanctx_current_filename'
../../lib/.libs/libconfig.so: undefined reference to `strbuf_release'
../../lib/.libs/libconfig.so: undefined reference to `scanctx_pop_include'
collect2: error: ld returned 1 exit status
Makefile:591: recipe for target 'example1' failed
make[3]: *** [example1] Error 1
make[3]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/examples/c'
Makefile:364: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2/examples'
Makefile:444: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/brianw/Downloads/libconfig-1.7.2'
Makefile:374: recipe for target 'all' failed
make: *** [all] Error 2
У меня вопрос, что я делаю не так?