внушительная библиотека, загружающая порядок

Также знайте о влиянии, которое текущее принятое решение может иметь при парсинге шестнадцатеричного числа, восьмеричных, и двоичных чисел:

>> Integer('0x15')
# => 21  
>> Integer('0b10')
# => 2  
>> Integer('077')
# => 63

В числах Ruby, которые запускаются с 0x или 0X, шестнадцатеричное число, 0b или 0B являются двоичными, и всего 0 являются восьмеричными. Если это не желаемое поведение, можно хотеть объединить это с некоторыми из других решений, которые проверяют, соответствует ли строка шаблону сначала. Как эти /\d+/ регулярные выражения, и т.д.

5
задан jackhab 7 December 2009 в 11:28
поделиться

2 ответа

gcc не отвечает за загрузку библиотек, либо ld.so делает это автоматически при загрузке вашей программы, либо вы делаете это вручную как @ jldupont предлагает.

И ld.so может намеренно рандомизировать порядок, чтобы предотвратить атаки возврата к stdlib.

Итак, либо:

  1. Загрузите библиотеки самостоятельно.
  2. Или удалите зависимости между скриптами загрузки библиотек.
  3. Сделайте библиотеки, содержащие сами зависимости (может работать, может нет) Когда вы дойдете до точки связывания каждой разделяемой библиотеки, убедитесь, что она включает -l в команду связывания. Вы можете проверить это, создав альтернативную программу, которая связывается только с этой разделяемой библиотекой - если она собирается и запускается, то библиотека содержит все необходимые зависимые библиотеки. Это может помочь, если ld.so загружает библиотеки в порядке зависимости - что, я думаю, должно быть.
5
ответ дан 14 December 2019 в 04:39
поделиться

Вы можете использовать dlopen и загружать библиотеки самостоятельно: таким образом у вас будет более точный контроль над процессом загрузки / выгрузки. См. здесь .

Конечно, это решение не на основе "gcc", и оно требует переделки вашего приложения ... Может быть, вы могли бы объяснить "проблему", с которой столкнулись, более подробно ?

Вы можете не принимать во внимание мое решение, если оно вам не подходит. Ура!

3
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

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