在OS X上,$ QTDIR的正确设置是什么?

时间:2010-07-29 22:29:29

标签: macos qt root

我正在尝试安装QtROOT,并且作为安装的一部分(特别是http://root.bnl.gov/QtRoot/downloads/qtFullRoot.tar.gz的QtROOT tarball中的自述文件),它提到要确保QTDIR已设置。我从Mac OS X的Qt 4.6.3 SDK安装中安装,我没有设置这样的环境变量。我已经尝试使用谷歌搜索来确定应该设置的位置,但我找到的选项(例如/ usr / local / qt)不存在。该变量应该设置为什么?

OS X 10.6.4,Qt 4.6.3,ROOT 5.26 / 00,QtROOT ......我不知道。 :P

谢谢,

3 个答案:

答案 0 :(得分:7)

Qt的OSX打包安装程序将整个/ Developer和/ Library目录中的内容分散,而不是安装到/ usr / local或/ opt / local中的自包含位置,正如您在其他基于Unix的系统上所期望的那样

顺便说一句,Qt遵循Apple在这方面做事的方式,所以它真的没有错误 - 它只是不同 - 但它确实会产生一些第三方Qt在OSX上构建的应用程序有点难度。

打包的Qt安装程序本身就此主题有如下说法:

  

安装成功后,您可以在/ Developer中找到大多数新内容。具体来说,事情将位于以下地方:

     
      
  • Qt Designer,Qt Linguist:/ Developer / Applications / Qt
  •   
  • Qt文档:/ Developer / Documentation / Qt
  •   
  • Qt示例:/ Developer / Examples / Qt
  •   
  • Qt插件:/ Developer / Applications / Qt / Plugins
  •   
  • Qt Frameworks:/ Library / Frameworks
  •   
  • Qt Libraries:/ usr / lib
  •   
  • qmake,moc,uic等:/ Developer / Tools / Qt(symlink to / usr / bin)
  •   
  • 卸载脚本:/Developer/Tools/uninstall-qt.py
  •   

所以,它 将libs放入'/ 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 :(得分:1)

我没有从安装程序安装Qt(但是我自己编译),所以我不知道默认位置。

但是,在你安装Qt的地方,有你的QTDIR。 搜索qmake,它应该驻留在某个bin /文件夹中。一个是QTDIR($ QTDIR / bin / qmake)。 通常现在不再需要设置QTDIR来构建Qt项目,只需要qmake在PATH中,然后找到其他所有内容。但是有些项目可能需要它(如果他们使用仍然使用QTDIR的自定义构建系统)。

答案 2 :(得分:1)

我需要在我的Mac上安装LiteIDE,在安装指南中,QTDIR是必要的。我用brew install qt --build-from-source的自制软件安装qt,用RMBP大约需要2个小时。安装完成后,仍然没有QTDIR路径。通过检查build_osx.sh,我知道它只是bin的父文件夹。所以我按export QTDIR=/usr/local/Cellar/qt/4.8.6设置路径。然后再次运行./build_osx.sh。有用。

希望这会有所帮助。