Как установить пользовательскую версию повышения в CentOS?

ответ terdon работает на меня, но я должен был использовать простофилю, не awk. Руководство простофили (поиск 'соответствия (') объясняет, что аргумент Array в соответствии () расширение простофили. Возможно, это зависит от Вашей установки Linux, и Ваши awk/nawk/gawk версии, но от моей машины Ubuntu только таращат глаза, выполнил превосходный ответ terdon:

$ gawk '{if(match($0, /^\[ (.+?) \]/, k)){name=k[1]}} {print >name".txt" }' entry.txt

4
19.09.2016, 14:14
2 ответа

Необходимо добавить -Wl,-R/usr/local/lib к LDFLAGS при компиляции программы.

-R опция компоновщика (для определения пути компоновщика во время выполнения) - -Wl сообщает gcc передать его ld.

С общими библиотеками необходимо удостовериться, что они найдены компоновщиком во время компиляции и во время времени выполнения (cf. флаги -L и -R).

Можно использовать

$ ldd myProgramm

чтобы проверить, был ли путь компоновщика во время выполнения установлен правильно, т.е. если он может найти, необходимые общие библиотеки по программе запускают/которыми совместно использованные библиотеки, которые он загрузит.

5
27.01.2020, 20:52
  • 1
    Установка LDFLAGS во время компиляции просто работает отлично, Спасибо! –  Afr 05.11.2013, 10:36

Как обходное решение, я полагаю, что можно снабдить префиксом выполнение исполняемого файла с переменной среды LD_LIBRRAY_PATH и дайте ему путь к каталогу, который содержит .so библиотека.

Пример

$ LD_LIBRARY_PATH=/usr/local/lib ./myProgram

Но это походит на метод, Вы раньше компилировали рассматриваемое приложение, не корректно. Я должен был бы видеть Ваш метод компиляции для myProgram быть более конкретным.

1
27.01.2020, 20:52
  • 1
    Да это работает действительно, спасибо. Но я предполагаю, что должен буду перекомпилировать его со скорректированным LDFLAGS. –  Afr 05.11.2013, 10:35
  • 2
    @qdoe - да, ответ max показывает, что практическое руководство выполняет это! –  slm♦ 05.11.2013, 10:44

Теги

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