第三方库抱怨MAXPATHLEN没有在一个项目中声明,但在其他项目中没有声明
3rd party library complain about MAXPATHLEN not declared in one project but not on other project
操作系统:Ubuntu 14.04
SDK:Qt 5.5
库:"ion.h"[我从源代码构建了ion-dtn第三方库,它有我在两个项目中使用的ion.h文件]
我在同一个开发系统中的两个项目中使用了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可以找到它,点击"follow under symbol",我发现它在sys目录下的param.h中声明。
我不能在我的另一个项目中做同样的事情。单击离子。h MAXPATHLEN
是黑色的,当我单击下面的符号时,找不到参数h。
我比较了一下,我的.pro文件在两个项目中都是一样的。你能告诉我我做错了什么吗。感谢
MAXPATHLEN
在<sys/param.h>
中声明。一个项目必须包含它(或者包含它的另一个头文件…例如,很难判断<QDir>
),而另一个项目则不包含。
只需先包含<sys/param.h>
,然后再包含ion.h
即可解决问题。
如果你真的想弄清楚谁包含了这个文件,然后确定为什么在一个项目中定义MAXPATHLEN
,那么有编译器选项(比如g++的/showIncludes
)。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- C++不正确,不需要重新声明类成员变量 MFC 手工解决方案/项目 MS VS 2015
- 我们是否应该在项目中包含的所有文件中声明外部变量
- 我应该如何修复 winnt.h 中的非法声明以避免禁用项目的质量检查?
- 在同一项目 (Cork+VTK) 中使用 2 个库时C++无法识别的模板声明
- 我应该如何在我的C++项目中声明全局变量
- yyparse()未在Bison/Flex C++项目中声明,仅适用于某些版本的gcc/Bison/Flex
- 尝试在Linux Mint 17.1 64位上"make" C++项目时从cstdlib和类似内容编译错误(未声明/不是类型)
- 有没有办法在同一项目中的另一个.cpp中使用.cpp中声明的静态空隙
- 团体项目剧院座位切换声明
- LPCSTR 在 CLR 项目中创建未声明的变量
- 无法在 xcode ios 项目中声明C++向量
- 第三方库抱怨MAXPATHLEN没有在一个项目中声明,但在其他项目中没有声明
- 在不同项目(没有编译时链接)使用的标头中声明的纯抽象C++类是否共享相同的虚拟表模型
- mErrCount:虽然在项目属性的include路径中声明了标识符,但未找到该标识符
- 使用在整个项目的不同文件中声明的对象
- 如何在同一解决方案下为多个项目声明公共#define