-1

Qt *.pro 文件的问题:

TARGET = ProgName
TEMPLATE = app
CONFIG += console
QT += core
QT += gui

LIBS += -LC:\\Qt\\4.8.5\\bin
LIBS += -LC:\\Qt\\4.8.5\\lib
LIBS += -LS:\\lib
# LIBS += -lQtCored4         # not necessary
# LIBS += -lQtCore4
# LIBS += -lQtGuid4
# LIBS += -lQtGui4

SOURCES += ...
HEADERS += ...

我收到这些链接器错误:

:-1: error: cannot find -lQtGuid
:-1: error: cannot find -lQtCored
collect2.exe:-1: error: error: ld returned 1 exit status

所有 DLL 都存在于指定的目录中。
文档没有太大帮助。

这个 pro 文件几天前工作了,自从我安装了 Qt 5.1 后它似乎有问题(这还没有使用;我仍在使用 Qt4)。

平台:Windows 7、MinGW、Qt 4.8.4

4

2 回答 2

1

无需链接到任何 Qt 库 afaik。

如果您使用的是 Qt Creator,您需要确保在 Tools - Options - Build & Run - Kits 中正确识别 Qt 4.8.4。由于您安装了 5.1,这可能不再适用。然后为您的项目设置 4.8.4 套件并编译它(有时清理构建目录也有帮助)。

于 2013-08-21T11:37:54.270 回答
1

您只需要以下内容:

TARGET = ProgName
TEMPLATE = app
CONFIG += console
QT -= gui

SOURCES += ...
HEADERS += ...

那是因为coregui被自动添加到QT变量中。gui但是,在这种特殊情况下,如果您希望按照您的样子构建控制台应用程序,则可以删除默认值。尽管“CONFIG += console”最终可以为您做到这一点。除此之外,一切都会自动为您工作,因此您无需将库路径传递给 qt 库等。如果您使用其他 Qt 模块,则只需要使用QT += widgets和类似的行,默认情况下不存在。即使那样,您也不需要像在问题中那样设置 Qt 库路径。

此外,如果您以后想跨平台定位,您可能希望添加以下内容:

配置 -= app_bundle

以避免为基于控制台的应用程序创建 Mac 包。

如果您似乎安装了多个版本的 Qt,则需要使用所需版本中的 qmake,这样就可以了。举个例子:我qmake在 Archlinux 系统上使用 Qt 5 和qmake-qt4Qt4。

在 Windows 上,您应该在不需要的路径之前的路径中有所需的 qt 安装 bin,或者您需要显式调用所需的 qmake,例如C:\path\to\my\desired\qmake.

于 2013-09-12T02:18:27.547 回答