Pergunta

A problem with a Qt *.pro file:

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 += ...

I get these linker errors:

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

All the DLLs exist in the specified directories.
The documentation did not help much.

This pro file worked a few days ago, and it seems to have issues since I installed Qt 5.1 (this is not used, yet; I am still working with Qt4).

Platform: Windows 7, MinGW, Qt 4.8.4

Foi útil?

Solução

You only need the following content:

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

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

That is because core and gui are added to the QT variable automatically. In this particular case however, you can remove the gui default if you wish to build a console application as you seem. Although "CONFIG += console" could eventually do that for you. Besides this, everything will work automatically for you, so you do not need to pass the library path to the qt libraries and so forth. You would only need to use QT += widgets and similar lines if you used further Qt modules there are not there by default. Even then, you would not need to set the Qt library path as you did in your question.

Besides, if you wanna target cross-platform later, you may wish to add this:

CONFIG -= app_bundle

to avoid creating Mac bundle for console based applications.

If you have multiple versions of Qt installed as it seems, you need to use the qmake from the required version, and it will be fine. Just to give an example: I use qmake for Qt 5 on my Archlinux system, and qmake-qt4 for Qt4.

On windows, you should either have the desired qt installation bin in the path before the undesired, or you need to call desired qmake explicitly, something like C:\path\to\my\desired\qmake.

Outras dicas

There's no need to link to any Qt libraries afaik.

If you're using Qt Creator you need to make sure Qt 4.8.4 is properly recognized in Tools - Options - Build & Run - Kits. Since you installed 5.1 this may no longer be true. Then set the 4.8.4 kit for your project and compile it (cleaning the build directory also helps sometimes).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top