Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ /usr/bin/ld:在Linux Mint上的Qt Creator中构建Qt5应用程序时找不到lGL_C++_Linux_Opengl_Linker Errors_Qt5 - Fatal编程技术网

C++ /usr/bin/ld:在Linux Mint上的Qt Creator中构建Qt5应用程序时找不到lGL

C++ /usr/bin/ld:在Linux Mint上的Qt Creator中构建Qt5应用程序时找不到lGL,c++,linux,opengl,linker-errors,qt5,C++,Linux,Opengl,Linker Errors,Qt5,我正在将我的应用程序从Qt4移植到Qt5。我从Linux Mint 16 64位上安装了Qt5.2.1,安装在MacBook Pro上的虚拟机中。当我在Qt Creator中运行qmake和build时,我得到: /usr/bin/ld: cannot find -lGL 我需要openGL吗?我在Windows或OSX上构建时没有使用它。我对Linux很陌生,而且远不是C++或QT的专家。我发现了一个包含从mkspecs/common/linux.conf中删除-lGL的黑客程序。成功了 我

我正在将我的应用程序从Qt4移植到Qt5。我从Linux Mint 16 64位上安装了Qt5.2.1,安装在MacBook Pro上的虚拟机中。当我在Qt Creator中运行qmake和build时,我得到:

/usr/bin/ld: cannot find -lGL
我需要openGL吗?我在Windows或OSX上构建时没有使用它。我对Linux很陌生,而且远不是C++或QT的专家。我发现了一个包含从mkspecs/common/linux.conf中删除-lGL的黑客程序。成功了


我的问题是,假设我不需要-lGL,那么阻止链接器尝试链接它的正常方法是什么?我想我在.pro文件中做了些什么,但是什么呢?

Qt5在内部大量使用OpenGL。在Windows上对OpenGL的支持有点脆弱(您必须安装原始的供应商驱动程序,因为Microsoft从自动安装的驱动程序中剥离OpenGL),因此使用内置的OpenGL仿真层库

但在Linux上,OpenGL支持要好得多。如果标准驱动程序不支持GPU,您至少可以找到Mesa softpipe后端。如果支持GPU,那么Linux中的开箱即用OpenGL支持在过去几年中已经变得相当不错了

《MaOSX OpenGL》中的P >实际上是所有高级图形操作的基础,因此是操作系统内部工作的一部分;理论上听起来不错,但这也是快速版本转换的主要障碍,因为每个主要的OpenGL版本都要求更新操作系统

现在,除非您的Linux安装已经严重过时,否则您实际上应该安装一个OpenGL库。如果没有(链接器错误告诉您这一点),只需安装Mesa开发包

LinuxMint是Ubuntu的衍生产品,而Ubuntu又是Debian的衍生产品。安装用于OpenGL的Mesa开发包的命令是

sudo apt-get install libgl1-mesa-dev

我正在使用最新的LinuxMint。我已经运行了你提到的命令,它成功地完成了。我仍然得到相同的链接错误。也许要澄清我的问题:对于一个简单的“Hello World”程序,Linux上是否需要linking-lGL?如果没有,我的程序可能也不需要它——在这种情况下,我应该如何告诉链接器不要包含-lGL?@DavidBurson:对于一个简单的Hello世界来说,它不是必需的。事实上,您使用的任何使用OpenGL的共享库(如Qt)都应该在内部创建链接,而无需您的程序明确指定。谢谢。通过试验两个Hello World程序,一个作为小部件应用程序,另一个作为控制台应用程序,如果.pro文件没有QT-=gui,链接器似乎会尝试链接-lGL。那么,如果我需要gui模块,我必须在Debian/Ubuntu/Mint上链接-lGL,这是真的吗?或者-lGL是我不需要的额外东西吗?@DavidBurson:有了在线安装程序,你是说Mint软件包管理器吗?如果没有,您是否安装了从Qt项目网站下载的内容?如果是后一种情况,请尝试从您的系统中清除它,并通过发行版存储库安装软件包。无论如何,如果没有使用QtGui,构建系统添加OpenGL是没有意义的;首先是QtGui创建了对OpenGL的依赖关系。@DavidBurson:取决于您的系统配置,但通常您仍然可以安装软件包;你会得到一堆你忽略的警告。这是一个可行的方法来处理这个问题,直到米尔特赶上了他们的计划。