Как скомпилировать интерпретатор для mips gcc?

Вероятно, проблема не связана с разрешениями (по крайней мере, на стороне Linux). После того, как получатель загрузит вложение, владельцем файла станет он. Так что все, что они извлекают из этого zip-файла.

Я подозреваю, что проблема одна из следующих:

  1. Получатель пытается отредактировать файл, не скачивая / не распаковывая его. Некоторые редакторы файлов достаточно умны, чтобы попросить вас сохранить файл в другом месте в этой ситуации, но некоторые просто выдадут вам ошибку «Не удалось сохранить файл».
  2. Почтовый клиент получателя поместил файлы в различные состояния Защищенный просмотр / Заблокировано .

Попросите получателя скачать вложение на свой рабочий стол. Щелкните правой кнопкой мыши по zip-файлу, перейдите к свойствам и посмотрите внизу на предупреждение системы безопасности («Этот файл был получен с другого компьютера и может быть заблокирован ...»). Если они это увидят, попросите их нажать «Разблокировать», а затем открыть zip-файл. Скопируйте сжатый файл latex_for_jane на свой рабочий стол. Откройте его и посмотрите, могут ли они теперь редактировать файл.

Кроме того, вы можете захотеть добавить расширение к этому исходному файлу («latex_for_jane.txt» или «latex_for_jane.tex»). Это избавит вашего Windows-соотечественника от неприятностей.

2
28.01.2019, 23:10
1 ответ

Я нашел это руководство на OpenWRT.org , которое помогло мне научиться устанавливать инструменты сборки, и я просто изменил инструкции, чтобы они соответствовали моей версии OpenWRT.

Я проверил git commit 70255e3d624cd393612069aae0a859d1acbbeeae (тег :v18.06.1)и установил настройки:

system "Broadcom BCM63xx"
subtarget "generic"
profile "Sagem F@ST2704N"

Я также установил для переменной среды PATH значение path/to/project/source/staging_dir/toolchain-mips_mips32_gcc-7.3.0_musl/binи выполнил команду mips-openwrt-linux-gcc hello.c -o hello.

Я должен упомянуть, что мне пришлось установить gnu -getopt и gnu -time, потому что я компилирую на OSX.

Кроме того, в качестве дополнительного бонуса, когда я тестировал компиляцию существующей программы, такой как BusyBox, я смог скомпилировать BusyBox с помощью команды LDFLAGS="--static" make CROSS_COMPILE="mips-openwrt-linux-".

Редактировать:

Для тех, кто интересуется, почему файлы ELF имеют интерпретаторы, интерпретатор необходим для настройки среды перед загрузкой программы. Цитата взята из сообщения в блоге Кристиан Айхингер, мысли из раздела «Загрузка программы в ядре».

«Статически связанные двоичные файлы могут обходиться без интерпретатора;динамически компонуемые программы всегда нуждаются в /lib/ld -linux.so в качестве интерпретатора, потому что он включает в себя некоторый код запуска, загружает общие библиотеки, необходимые для двоичного файла, и выполняет перемещение."

Я подозреваю, что причина, по которой моя программа продолжала говорить «Убито» (в оригинальной прошивке Sagemcom ), даже когда я связывал ее статически, заключается в том, что маршрутизатор мог быть разработан для того, чтобы сбить с толку пользователя, пытающегося запустить программа для предотвращения несанкционированного выполнения. Я выяснил, как скомпилировать uClibc и заставить его работать на исходной прошивке и отдельном устройстве Sagemcom (, не имеющем отношения к тому, о котором спрашивалось в этом вопросе ).

0
27.01.2020, 22:29

Теги

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