На OS X, какова правильная настройка для $ QTDIR? - PullRequest
4 голосов
/ 30 июля 2010

Я пытаюсь установить QtROOT, и как часть установки (в частности, файл readme в тарболе QtROOT на http://root.bnl.gov/QtRoot/downloads/qtFullRoot.tar.gz),, он упоминает, чтобы убедиться, что установлен QTDIR. Я установил из Qt 4.6.3 Установка SDK для Mac OS X, и у меня нет такой переменной среды. Я попытался поискать в Google, чтобы определить, где она должна быть установлена, но параметры, которые я нашел (такие как / usr / local / qt) не существует. Какой должна быть эта переменная?

OS X 10.6.4, Qt 4.6.3, ROOT 5.26 / 00, QtROOT ... Понятия не имею. : P

Спасибо

Пол

Ответы [ 3 ]

7 голосов
/ 11 августа 2010

Пакетный установщик Qt для OSX разбрасывает вещи по каталогам / Developer и / Library, а не устанавливает их в автономное расположение в / usr / local или / opt / local, как вы могли бы ожидать, что это будет происходить в других системах на основе Unix .

Кстати, Qt следует тому, как Apple действует в этом отношении, так что это действительно не неправильно - это просто отличается - но это делает некоторые сторонние приложения Qt несколько сложно собрать на OSX.

Упакованный установщик Qt сам может сказать по этому поводу следующее:

После успешной установки вы можете найти большинство новых вещей в / Developer. В частности, вещи будут расположены в следующих местах:

  • Qt Designer, Qt Linguist: / Разработчик / Приложения / Qt
  • Документация Qt: / Разработчик / Документация / Qt
  • Примеры Qt: / Developer / examples / Qt
  • Плагины Qt: / Разработчик / Приложения / Qt / Плагины
  • Qt Frameworks: / Library / Frameworks
  • Библиотеки Qt: / usr / lib
  • qmake, moc, uic и т.д .: / Developer / Tools / Qt (символическая ссылка на / usr / bin)
  • Сценарий удаления: /Developer/Tools/uninstall-qt.py

Итак, делает , помещает библиотеки в '/ usr / lib' и объединяет основные инструменты Qt (например, qmake) в / usr / bin. Это говорит о том, что QTDIR может быть установлен в «/ usr». Однако на практике это не работает, потому что заголовки qt остаются скрытыми в '/Library/Frameworks/Qt*/Headers/*.h', тогда как сборки, основанные на $ QTDIR, в конечном итоге будут искать заголовки qt в "$ {QTDIR} / include / "вместо.

Самый простой способ обойти это - собрать Qt из исходного кода. По умолчанию будет установлено что-то вроде /usr/local/Trolltech/Qt-4.6.3 (запишите номер версии и отрегулируйте соответственно). Вы можете переопределить расположение установки по умолчанию, используя опцию -prefix в ./configure.

Более простой подход - позволить macports создать его для вас. Это подход, который я в конечном итоге принял (и с хорошим успехом). Просто установите macports, если у вас его еще нет. Тогда:

> sudo port selfupdate
> sudo port install qt4-mac

Macports проявит свою магию, и когда это будет сделано, Qt будет полностью установлен на /opt/local/libexec/qt4-mac.

Независимо от того, как вы собираете Qt, ожидайте, что полная сборка займет несколько часов. Это очень большая кодовая база.

1 голос
/ 04 августа 2014

Мне нужно установить LiteIDE на моем Mac и в руководстве по установке необходим QTDIR. Я устанавливаю qt с помощью homebrew brew install qt --build-from-source, в RMBP это занимает около 2 часов. После завершения установки путь QTDIR по-прежнему отсутствует. Проверяя build_osx.sh, я знаю, что это просто родительская папка bin. поэтому я установил путь на export QTDIR=/usr/local/Cellar/qt/4.8.6. Затем снова запустите ./build_osx.sh. оно работает.

Надеюсь, это будет полезно.

1 голос
/ 30 июля 2010

Я не установил Qt из установщика (но скомпилировал его сам), поэтому я не знаю местоположение по умолчанию.

Однако там, где вы установили Qt, есть ваш QTDIR. Найдите qmake, он должен находиться в некоторой папке bin /. один из них - QTDIR ($ QTDIR / bin / qmake). Обычно больше нет необходимости устанавливать QTDIR в эти дни для создания проекта Qt, просто qmake должен быть в PATH, тогда все остальное будет найдено. Но в некоторых проектах это может потребоваться (если они используют собственную систему сборки, которая все еще использует QTDIR).

...