Qt不会链接任何内容
Qt will not link anything
我在Ubuntu Linux和Windows上都尝试过。我无法让Qt链接它的任何库或任何外部库,我已经尝试了.pro file
:中几乎所有可能的LIBS += -Lpath/to/lib -llib
和INCLUDEPATH += 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开发。参见
- http://packages.debian.org/sid/libqt4-opengl-dev
- 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
- 内联函数中具有内部链接的全局变量
- 内联函数/变量的外部链接
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 内联是否决定内部链接?
- 显示链接列表内联
- 告诉链接器"respect" __attribute__((__used__))的任何方法
- 在 Cmake 中链接 libavcodec,find_library不适用于任何库
- 内联函数的链接器未解析的外部符号
- 内联失败:可以在链接时覆盖函数体
- 是否在构建时发生任何特定于静态链接的事情
- 内联函数时出现链接器错误
- gcc 5.1 中的链接时间优化是否足以放弃内联简单函数
- C++ 链接器错误 - 未定义引用"到未内联定义的函数
- 为什么使用内联函数的程序根据链接顺序和参数具有不同的行为
- 有没有一种方法可以在不重建任何项目的情况下重新链接解决方案
- 是包含内联链接的模板类的方法
- 在O(n)时间内创建链接列表的副本
- 在两个单独的 cpp 文件中定义的内联函数是否可以在链接期间创建重复的符号
- HTML和C ++可以在没有任何外部应用程序的情况下链接
- 如何避免在任何地方链接某个目标文件