我正在尝试在带有 Clang 的 Ubuntu 12.04 上使用 QT5.1 Beta 编译现有的 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
我目前的系统设置如下:
- 在我的主目录上安装了 QT5.1 Beta 的 64 位 linux 预构建包
- 将 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/** 路径下的 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 是否告诉编译器使用系统默认路径中的库?我在这里想念什么?