Qt不会链接任何内容

Qt will not link anything

本文关键字:任何内 链接 Qt      更新时间:2023-10-16

我在Ubuntu Linux和Windows上都尝试过。我无法让Qt链接它的任何库或任何外部库,我已经尝试了.pro file:中几乎所有可能的LIBS += -Lpath/to/lib -llibINCLUDEPATH += path/to/include/files组合

QT += opengl
TARGET = QtOpenGLExample
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp 
    GLExampleWidget.cpp
HEADERS += GLWidget.h
LIBS += -L /usr/lib/ -llibQtOpenGL.so.4.6.2

当我在项目创建者中单击"打开GL"时,我注意到这是一个问题,当时它不起作用(即使在我尝试在.pro中乱搞之后),之前我只是觉得我在链接SFML 1.6时做了一些愚蠢的事情。

p.s这与我的项目所在地有关吗?:

/home/aperson/Projects/ComputerProgramming/C++/OpenGLExample/

它不应该是

 LIBS += -L /usr/lib/ -llibQtOpenGL.so.4.6.2

但是

 LIBS += -L /usr/lib/ -lQtOpenGL

因为对于链接器来说,-lfoo意味着libfoo.so(它应该能够找到正确版本的文件,所以你不需要告诉4.6.2

可能,您甚至不需要特殊的LIBS,因为QT行中提到了opengl。但您应该确保已安装libqt4-opengl-dev软件包。

取自QtOpenGL模块:

Qt OpenGL模块使在Qt应用程序中使用OpenGL变得容易。它提供了一个OpenGL小部件类,可以像任何其他Qt小部件一样使用,只是它打开了一个可以使用OpenGL API渲染内容的OpenGL显示缓冲区。

要包含模块类的定义,请使用以下指令:

 #include <QtOpenGL>

要链接到模块,请将此行添加到qmake.pro文件:

 QT += opengl

您可能需要链接到您的opengl库。这应该做到:

 LIBS += -lGL

这是因为您已经告诉qmake,您正在.pro文件中创建一个控制台应用程序,使其忽略所有GUI库。所以去掉CONFIG += console线。

您的项目文件似乎还可以。QMake应该为您生成相应的-l-l命令。IMHO,这不是问题所在。

你是不是错过了opengl/Qt4软件包?它在Ubuntu和Debian上被称为libqt4 opengl开发。参见

  1. http://packages.debian.org/sid/libqt4-opengl-dev
  2. http://packages.ubuntu.com/search?searchon=names&keywords=libqt4 opengl开发

在shell上键入此项以检查并在需要时安装程序包。

$ dpkg -l | grep opengl
ii  libqt4-opengl                          4:4.8.0-1ubuntu11                       Qt 4 OpenGL module
$ aptitude install libqt4-opengl-dev