我试图在Ubuntu 12.04上与Clang一起编译现有的QT5.1测试版QT库。这个项目在QT4.8.4下可以正常编译。
当我用QT5.1 Beta编译项目时,我得到了下面的链接器错误。
/usr/bin/ld: cannot find -lQt5OpenGL
/usr/bin/ld: cannot find -lQt5Widgets
/usr/bin/ld: cannot find -lQt5Network
/usr/bin/ld: cannot find -lQt5Gui
/usr/bin/ld: cannot find -lQt5Core
我当前的系统设置如下:
- 在我的主目录下安装了64位linux预构建的QT5.1 Beta包
- 将Qt5.1 qmake bin目录添加到PATH环境变量 中
- 添加QT5.1 lib目录到LD_LIBRARY_PATH 安装Clang 3.3和libc++
- 在QT Creator中添加了一个带有QT5.1和Clang的工具包,并使用该工具包构建了项目
我从图标和bash启动qtcreator时都遇到了错误。
以前使用这个ubuntu系统的开发人员使用apt-get安装了QT4。我认为QT4被安装在默认的操作系统目录中,当我构建我的项目时,QT4总是被选中,而不是QT5。我删除了/usr/** path
下的QT4包当构建失败时,我看到下面的命令在qtcreator的编译器输出窗口中执行。
clang++ debug/moc-xxx.o -L -L/home/user/Qt5.1.0/5.1.0-beta1/gcc_64/lib -lQ5OpenGL -lQt5Widgets -lQt5Network -lQt5Gui -lGL -lpthread
没有路径的-L是否告诉编译器使用系统默认路径中的库?我遗漏了什么?
你需要先用Clang编译Qt (Clang-3.2的例子):http://libre.tibirna.org/projects/qgit/wiki/Compile_Qt5_with_clang
因为预构建的Linux Qt库是为gcc准备的。
在构建Qt之后,你可以为Qt Creator配置工具包:http://libre.tibirna.org/projects/qgit/wiki/Compile_QGit_with_Qt5_and_clang