Я пытаюсь скомпилировать код и чтобы он заработал, мне нужно выполнить следующую строку перед компиляцией:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

После этого код компилируется нормально, я пытаюсь добавить это, чтобы мне не нужно было запускать эту строку каждый раз, когда я перезагружаю свой компьютер. Я попытался добавить эту строку в файл .bashrc (путь к файлу нуждается в кавычках?) который, казалось, не работал. Я также попытался создать файл .bash_profile добавив туда строку, но опять же, похоже, это не работает.

Всякий раз, когда я пытаюсь скомпилировать после добавления .bash_profile я получаю следующую ошибку:

./makeScript: line 1: pkg-config: command not found

2 ответа2

0

Возьмите ~/.profile:

$ cat >> ~/.profile << EOF
> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
> EOF

Загрузите изменения (если вы не хотите перезагружаться):

$ source ~/.profile

Тестовое задание:

$ echo $PKG_CONFIG_PATH
/usr/local/lib/pkgconfig
0

Это должно работать, если вы добавили его в ~/.bashrc или ~/.bash_profile .

Если это не сработает, убедитесь, что ваш скрипт действительно использует оболочку bash (shebang), как если бы вы использовали другую оболочку, возможно, она не будет загружена.

Однако я думаю, что ваша проблема не связана с PKG_CONFIG_PATH , а с PATH которая не содержит нужного каталога, в котором присутствует исполняемый двоичный файл pkg-config .

Проверить по:

$ which pkg-config
/usr/local/bin/pkg-config

Если вы не можете найти его, убедитесь, что вы установили его и связали его, например, с помощью Homebrew:

brew install pkg-config; brew link pkg-config

И ваш /usr/local/bin находится в вашем PATH , например

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

В качестве примечания вы можете проверить переменные экспорта, выполнив команду set непосредственно перед ошибкой ссылки.

Еще одна вещь для отслеживания проблемы - отладка ваших сценариев с помощью команды: bash -x ./makeScript или добавления -x в конце вашего shebang (например, #!/bin/bash -x).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .