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都存在于指定的目录中 文档没有多大帮助。
这个专业文件几天前工作了,因为我安装了Qt 5.1后似乎有问题(这还没用过,我还在使用Qt4)。
平台:Windows 7,MinGW,Qt 4.8.4
答案 0 :(得分:1)
无需链接到任何Qt库。
如果你正在使用Qt Creator,你需要确保在工具 - 选项 - 构建和放大器中正确识别Qt 4.8.4。运行 - 套件。由于您安装了5.1,因此可能不再适用。然后为您的项目设置4.8.4工具包并进行编译(清理构建目录有时也会有所帮助)。
答案 1 :(得分:1)
您只需要以下内容:
TARGET = ProgName
TEMPLATE = app
CONFIG += console
QT -= gui
SOURCES += ...
HEADERS += ...
这是因为core
和gui
会自动添加到QT
变量中。但是,在这种特殊情况下,如果您希望构建一个控制台应用程序,则可以删除gui
默认值。虽然“CONFIG + = console”最终可以为你做到这一点。除此之外,一切都将自动为您工作,因此您不需要将库路径传递给qt库等等。如果您使用了其他Qt模块,则只需要使用QT += widgets
和类似的行,默认情况下不存在。即便如此,您也不需要像在问题中那样设置Qt库路径。
此外,如果您想要稍后跨平台,您可能希望添加:
CONFIG - = app_bundle
避免为基于控制台的应用程序创建Mac包。
如果你似乎安装了多个版本的Qt,你需要使用所需版本的qmake,它会没问题。举一个例子:我在Archlinux系统上使用qmake
获取Qt 5,在Qt4上使用qmake-qt4
。
在Windows上,您应该在不需要的路径之前的路径中拥有所需的qt安装箱,或者您需要明确地调用所需的qmake,例如C:\path\to\my\desired\qmake
。