Я пытаюсь использовать метод Cygwin для повторного изучения C с помощью книги 21st Century C Бена Клеменса. Я установил Cygwin и использовал apt-cyg для установки пакетов, упомянутых в книге. Пакеты, похоже, устанавливаются нормально, я могу вызвать gcc, make, pkg-config и т. д., но pkg-config, похоже, ничего не может найти. А точнее, вот это не может ничего найти:
$ pkg-config --libs gsl
$ pkg-config --cflags gsl
Я видел пару вопросов, в которых говорилось об изменении пути. Я пробовал изменить его на:
$ export PKG_CONFIG_PATH=c:\\cygwin\\usr\\local\\lib\\pkgconfig
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
$ export PKG_CONFIG_PATH=C:\\cygwin\\bin
У меня все это уже установлено:
- binutils
- gcc
- gcc-ядро
- gcc-g++
- делать
- гдб
- гсл
Я проверил, что они установлены, используя:
$ cygcheck -c | grep {string}
Признаюсь, я не очень хорошо знаком с системами Linux, иначе это была бы моя основная система, и я бы не использовал Cygwin ;)
решение1
Я задавал неправильный путь, я думал, что команда экспорта добавляет пути к переменной PKG_CONFIG_PATH, очевидно, мне нужно было добавить префикс переменной в начале (точно так же, как я должен делать в Windows :) и разделить двоеточием, если я действительно хотел добавить пути
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:{my_new_path}
Но это была не настоящая проблема, из-за которой pkg-config не мог найти gsl, хотя я и думал, что установил пакет, на самом деле мне нужно было установить gsl-devel, а затем он добавил бы свой файл .pc в /lib/pkgconfig.
Итак, подведем итог: мне нужно было использовать мой менеджер пакетов для установки {package-name}-devel (gsl-devel), который затем добавил бы соответствующий файл {package-name}.pc (gsl.pc).
Установите переменную правильно:
$ export PKG_CONFIG_PATH=/lib/pkgconfig
затем получите пакет разработки:
$ apt-cyg install gsl-devel