Как я могу получить статический компилятор C?

Вы ключ SSH кодируетесь в Основе 64. Этот формат является наиболее часто используемым в криптографии (и вне), чтобы хранить двоичную информацию в формате ASCII.

И в base64 '=' знак является дополнительным символом с очень определенным значением:

'==' последовательность указывает, что последняя группа содержала только 1 байт, и '=' указывает, что она содержала 2 байта. Пример ниже иллюстрирует, как усечение входа всего выше кавычки изменяет выходное дополнение

источник: http://en.wikipedia.org/wiki/Base64#Padding

На самом деле нет никакого разделителя между ключом и комментарием. SSH знают, что открытый ключ состоит из 3 вещей:

[space][space]

Присутствие пространства в конце открытого ключа является разделителем между ключом и комментарием. Равное '=' знак, который Вы видите просто, указывает на дополнение в конце открытого ключа.

8
18.02.2012, 00:56
2 ответа

Создание статического двоичного файла должно быть столь же простым как работающий gcc с - статичный, или если ld называют непосредственно использованием-Bstatic. Попробовать

CFLAGS=-static make

после выполнения configure. Если это перестанет работать, то результаты будут очевидны, например, огромное количество неопределенных ссылок во время ссылки.

1
27.01.2020, 20:13
  • 1
    я попробовал make CFLAGS=-static сейчас. Сделайте печать некоторым предупреждением о dlopen, затем, когда я пытаюсь выполнить исполняемый файл в chroot среде, я добираюсь /usr/lib/crt1.o .. crti,o .. crtn.o не найденный ошибками. Это то, что Вы подразумевали "под неопределенными ссылками во время ссылки"? –  math4tots 18.02.2012, 02:56
  • 2
    Ошибки, которые я ожидал, произойдут из-за пропавших без вести статических версий библиотек, как crt1.o, но компоновщик сразу жаловался бы. Если Вы видите ошибки во времени выполнения, то двоичный файл не был статично связан. –  Kyle Jones 18.02.2012, 02:59
  • 3
    , я думаю, что Вы неправильно поняли вопрос: math4tots хочет компилятор C, который работает автономным двоичным файлом (или по крайней мере легко идентифицируемым набором файлов) не компилятор C, который производит автономные двоичные файлы. –  Gilles 'SO- stop being evil' 19.02.2012, 01:31
  • 4
    Да, я понимаю это. Создание статически связанного компилятора является необходимым первым шагом и тем, о котором вопрос, кажется, спрашивает. –  Kyle Jones 19.02.2012, 02:44
  • 5
    @Gilles лучший способ получить компилятор C, поскольку автономный двоичный файл состоит в том, чтобы создать его из источника с помощью компилятора, Вы уже имеете. –  OrangeDog 14.08.2012, 18:36

Вы также можете получить предварительно скомпилированную версию с помощью static-get

static-get -x gcc
2
27.01.2020, 20:13

Теги

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