c – 第三方图书馆抱怨MAXPATHLEN未在一个项目中声明,而在其他项目中未声明

操作系统:Ubuntu 14.04

SDK:Qt 5.5

library:“ion.h”[我已经从源代码构建了ion-dtn第三方库,它有我在2个项目中使用的ion.h文件]

我在同一个开发系统的2个项目中使用ion.h.这两个项目都基于Qt.包括ion.h.一个项目运行没有任何编译错误,其他抱怨MAXPATHLEN.

/usr/local/include/ion.h:60: error: 'MAXPATHLEN' was not declared in this scope
  char pathName[MAXPATHLEN + 1];.

在运行良好的项目中,我可以点击ion.h并发现MAXPATHLEN用蓝色突出显示,显然意味着qt可以找到它并点击“跟在符号下”我发现它在sys目录下的param.h中声明.

我不能在我的其他项目中做同样的事情.单击ion.h时,MAXPATHLEN为黑色,当我单击符号下的后跟时,无法找到param.h.

我已经比较了,我的.pro文件在两个项目中是相同的.可以soemone请指导我做错了什么.
谢谢

最佳答案 MAXPATHLEN在< sys / param.h>中声明.一个项目必须包含它(或包含它的另一个头文件……例如< QDir>例如,很难说),而另一个则没有.

只需包含< sys / param.h>在你自己包含ion.h之前解决问题.

如果你真的想弄清楚包含这个文件的是谁,然后确定为什么在一个项目中定义MAXPATHLEN,那么就有编译器选项(比如/ showIncludes for g).

点赞