Передача ''
не означает возврата к значению аргумента по умолчанию. Это просто означает, что вы пытаетесь передать пустую строку.
Вам нужно будет воспроизвести значения по умолчанию, если вы хотите добиться этого:
htmlspecialchars('&', ENT_COMPAT | ENT_HTML401, ini_get('default_charset'), FALSE);
Кто бы ни решил сделать маркерный $ORIGIN, злой ублюдок, который заслуживает специального места в аду программиста. Так как '$' является специальным символом для удара, и другим языкам сценариев нравится, делают, он завинчивает все, если тщательно не оставлено. Еще хуже, в зависимости от которой среды сборки Вы используете, специфические особенности того, как выйти правильно, вероятно, изменятся.
В ударе, необходимо засунуть обратную косую черту перед $:
-Wl,-R\$ORIGIN
Код:: Блоки, по-видимому, также рассматривают $ как особенный. Затем безотносительно Кода контроллера подпроцесса:: Блоки отправляют команду в обработки обратная косая черта как особенную. Так, и обратная косая черта и $ должны быть согнуты, чтобы быть оставленными правильно. Поэтому в Коде:: настройки компоновщика Блоков, необходимо указать:
-Wl,-R\\$ORIGIN
..., который выводы:
-Wl,-R\\$ORIGIN
... к журналу сборки, но оболочке на самом деле отправляется:
-Wl,-R\$ORIGIN
..., который, как упомянуто выше приводит к желаемому результату.
, Что боль.
В дополнение к ответу kblucks, который затрагивает вопрос для кода: блоки .... Для тех, кто, как я, наткнулся на эту страницу в поисках того, как это сделать с помощью Make. Уловка состоит в том, чтобы использовать дополнительный знак $ в качестве escape-символа и заключить его в кавычки:
-Wl,-R,'$$ORIGIN/../lib'
Полное объяснение можно найти здесь: Using ORIGIN for a dynamic runtime library search path