Linux/solaris 下编译找不到qgl.h 的问题----(适用于多种编译找不到路径的问题)

一 问题背景

Qt项目开发,项目规模较小,4个人搞定,开发环境为windows+Qt 4.7.0+vs2008+mysql 5

2012.2交付客户内测,客户环境为Solaris10。交付给用户的文件共7个模块,所有模块都在windows下成功编译运行,但用户在solaris下只有3个能编译通过。编译不能通过原因有pro文件内容不正确,有linux/unix对大小写敏感,这些均比较好解决,就是以下这个问题解决时候废了点功夫

二、问题描述 

 在solaris或linux下编译时,pro文件为自己写的。编译过程用qmake , make命令。 编译时候会出现错误:错误:qgl.h:没有那个文件或目录。

三 问题解决

#法一:更改头文件中的include路径

上网查找,一种方法说:在.h文件中这样包含头文件:#include   也就是你安装qt4的路径 (这里include 包含的直接就是在linux或unix下的qt的库的目录的绝对路径),得到启发,去windows下看qt的安装目录下(C:\Qt\4.7.0\include),里面有一个QtOpenGL文件夹,QtOpenGL下包含qgl.h文件。  其实这里的qgl.h中的内容是:
#include "../../src/opengl/qgl.h"。其实就是C:\Qt\4.7.0\src \opengl下的 qgl.h源文件。
 
  所以,为了在solaris下编译通过,不提示:“错误:qgl.h:没有那个文件或目录”。故在源代码中,将 #include 更改为 #include 在头文件中指定qgl.h的路径,在solaris下编译的时候就没有错误

#法二:在pro文件中指定包含的库路径

  这里需要补充一下知识: 1. 关于pro文件的编写  2.pro文件中包含库的相关写法。详细参考:http://hi.baidu.com/cyclone/blog/item/d299af511bed309f8c5430c3.html 
解决方案,在pro文件中添加 opengl字段,例如pro中的内容要加上:QT +=  xml sql opengl ,在qt+=的最后加上opengl路径。至于具体含义,见上面的帖子 
 

你可能感兴趣的:(1st,Qt_project)