Octave configure не удается найти библиотеку Qt в OS X

#macos #qt #octave

#macos #qt #octave

Вопрос:

Я установил библиотеку QT 4.8 в свою OS X путем прямой установки с помощью файла .dmg, загруженного с qt-project.org . Кажется, это рамочная версия. И до сих пор многие инструменты хорошо ее распознают. Но когда я создаю octave на этом компьютере, он выдает предупреждение «Библиотеки Qt не найдены». Интересно, почему. И что я могу сделать, чтобы он распознал библиотеку qt на моем компьютере.

Команда, которую я использовал для настройки

 ./configure --prefix=/usr/local --enable-shared F77=gfortran-4.2 LDFLAGS='-L/usr/local/lib'
  

(дополнительная информация)

Я пытался найти установку QT с

 find find /Library/ -name QtGui
  

Возвращаемый результат

 /Library//Frameworks/QtGui.framework/QtGui
/Library//Frameworks/QtGui.framework/Versions/4/Headers/QtGui
/Library//Frameworks/QtGui.framework/Versions/4/QtGui
  

Наряду с тем фактом, что ipython notebook --matplotlib=qt она хорошо работает в моей системе, я предполагаю, что моя библиотека Qt успешно установлена.

Но при выполнении проверки с pkg-config помощью , оба pkg-config --cflag QtGui и pkg-config --libs QtGui не возвращают положительного результата.

Ответ №1:

Убедитесь, что ваша установка Qt работает. Я предполагаю, что она была установлена правильно и видна в используемой вами операционной системе.

Вставленная configure вами команда принимает две переменные среды, QT_CFLAGS и QT_LIBS . Используйте pkg-config инструмент для определения их соответствующих значений:

 pkg-config --cflags QtGui
pkg-config --libs QtGui
  

и добавьте эту информацию в командную строку:

 ./configure QT_CFLAGS='foo' QT_LIBS='bar' # other stuff...
  

Комментарии:

1. Я пробовал команды, но pkg-config не может найти QtGui. Но я попробовал find Library -name QtGui , есть несколько результатов /Library/Frameworks/QtGui.framework/ . Я думаю, что QtGui распознается системой, как и ранее, я использовал ipython notebook с qt, и он работает хорошо.

2. @Chong, посмотри, сможешь ли ты найти QtGui.pc где-нибудь в файловой системе. Это файл pkg-config , который будет искать.

Ответ №2:

Думаю, теперь я знаю ответ. qt-4.8, установленный через файл .dmg, является версией фреймворка. Qt*.pc Файла нет, поэтому он не может быть найден pkg-config . Итак, чтобы использовать pkg-config для поиска qt, установленного в системе, вам необходимо собрать qt из исходного кода (исходный код можно загрузить с qt-project.org ), указывающий, что -no-framework версия должна быть собрана:

 ./configure -no-framework --foo --bar
make
sudo make install
  

После сборки и установки qt будет находиться в (по умолчанию)

 /usr/local/Trolltech/Qt-4.8.6/lib/pkgconfig/
  

Таким образом, добавляется строка в ~/.bashrc

 export PKG_CONFIG_PATH="/usr/local/Trolltech/Qt-4.8.6/lib/pkgconfig/:${PKG_CONFIG_PATH}"
  

помогло pkg-config бы найти qt в вашей системе.

Комментарии:

1. Спасибо, что поделились своими усилиями и ответом, это поможет будущим пользователям.

Ответ №3:

Если вы установили QT с помощью файла .run, вы можете найти папку pkgconfig . Что касается меня, я установил QT в «/opt / qt5.15.x /», и я нахожу этот путь «/opt/ qt5.15.x / 5.15.2/gcc_64 / lib / pkgconfig». Ссылаясь на pkg-config-path-environment-переменную, я добавляю ее в PKG_CONFIG_PATH с помощью

 export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt5.15.x/5.15.2/gcc_64/lib/pkgconfig/
  

А затем Octave configure находит QT. И лучше проверить файл .pc в вашей папке pkgconfig. «префикс» в файлах .pc может быть неправильным.