Проблема в Перекрестной компиляции TinyCC с CodeSourcery

Необходимо установить 32 бита glibc:

# yum install glibc.i686

Это удаляет введение в заблуждение 'никакого такого файла или каталога' сообщение при попытке выполнить двоичный файл на 32 бита. С этим система Fedora на 64 бита способна к выполнению двоичных файлов на 32 бита.

Это также удаляет вводящее в заблуждение 'не динамическое исполняемое' сообщение ldd при вызове ldd на динамическом исполняемом файле на 32 бита.

Теперь необходимо установить недостающие библиотеки на 32 бита двоичные файлы под adt-bundle-linux/sdk/platform-tools связаны против:

# yum install zlib.i686 libstdc++.i686 ncurses-libs.i686 libgcc.i686

Вот именно.

Фон

Некоторый фон, как получить вышеупомянутые имена пакета. Например, смотря на вывод

$ ldd adb
linux-gate.so.1 =>  (0xf774f000)
librt.so.1 => /lib/librt.so.1 (0xf7725000)
libncurses.so.5 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0xf770b000)
libstdc++.so.6 => not found
libm.so.6 => /lib/libm.so.6 (0xf76df000)
    [..]

средства, это 2 библиотеки все еще отсутствуют для adb.

Для каждого 'не найденного' у нас есть к поиску имя пакета, например:

$ yum whatprovides '*libstdc++.so.6'
[..]
libstdc++-4.7.2-2.fc17.i686 : GNU Standard C++ Library
[..]

Теперь мы берем имя основания корпуса и добавляем '.i686' к нему для получения версии на 32 бита.

2
19.05.2017, 16:40
1 ответ

Сообщение об ошибке показывает, что Вы хотите скомпилировать код для своей платформы (x86/64) с компилятором ARM, который не работает. Настраивать сценарий не предположил корректной цели ("TCC_TARGET_X86_64" вместо цели ARM).

Вероятно, Вам нужно --cpu=armv7a (или что Вы точно имеете), опция и/или --cross-prefix=arm-none-linux-gnueabi- опция. Прежде, выполненный make clean.

3
27.01.2020, 22:06
  • 1
    благодарит, jofel, но теперь я добираюсь cat: /VERSION: No such file or directory make: *** No rule to make target /Makefile, needed by Makefile. Stop. –  Shushant 19.11.2013, 12:03
  • 2
    Настраивать сценарий, кажется, повреждается немного. Я должен использовать armv4l иначе я получаю "Неподдерживаемое предупреждение ЦП". Кроме того, я должен установить TCC_ARM_VERSION в config.h вручную (например. #define TCC_ARM_VERSION 4) –  jofel 19.11.2013, 15:36

Теги

Похожие вопросы