4

操作系统:Ubuntu 14.04
SDK:Qt 5.5
库:“ion.h”[我已经从源代码构建了 ion-dtn 3rd 方库,它有我在我的 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.hMAXPATHLEN时为黑色,当我单击符号下的跟随时无法找到 param.h。

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

4

1 回答 1

2

MAXPATHLEN在中声明<sys/param.h>。一个项目必须包含它(或另一个包含它<QDir>的头文件......例如,很难说),而另一个不包含。

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

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

于 2015-12-15T17:57:43.437 回答