【发布时间】:2015-08-08 06:00:51
【问题描述】:
如果我在 .mm 文件或 .h 文件中包含任何 POCO 头文件,我会看到以下奇怪的错误。如果我在 .cpp 文件中包含标头,则项目成功编译。任何使 POCO 在目标 C 项目中运行的帮助或示例代码都将不胜感激。
代码如下:
//File: test.mm
#import "test.h"
#include "Poco/JSON/Object.h"
@implementation test
-(void)test{
Poco::JSON::Object obj;
}
@end
这里是错误的截图
详细错误:
In file included from /Users/a/Desktop/test/theta/theta/test.mm:10:
In file included from /Users/a/Desktop/poco-1.6.0- all/JSON/include/Poco/JSON/Object.h:24:
In file included from /Users/a/Desktop/poco-1.6.0-all/JSON/include/Poco/JSON/Array.h:25:
In file included from /Users/a/Desktop/poco-1.6.0-all/Foundation/include/Poco/Dynamic/Var.h:26:
In file included from /Users/a/Desktop/poco-1.6.0-all/Foundation/include/Poco/Dynamic/VarHolder.h:24:
In file included from /Users/a/Desktop/poco-1.6.0-all/Foundation/include/Poco/NumberFormatter.h:24:
/Users/a/Desktop/poco-1.6.0-all/Foundation/include/Poco/NumericString.h:261:8: error: expected member name or ';' after declaration specifiers
void check(char* ptr)
~~~~ ^
【问题讨论】:
-
您是否尝试过展开错误消息,查看实际正在编译的文件?您的项目中是否有任何包含这些头文件的非 C++ 文件,例如.c 或 .m 文件?
-
抛出错误的文件是 Foundation/include/Poco/NumericString.h 并且项目不包含任何包含任何 POCO 标头的 c 或 m 文件
-
不,源文件。编译器不编译头文件,它总是编译源文件(以及源文件上下文中的头文件,或“编译模块”)。单击第一条错误消息旁边的三角形时,您会看到什么文件层次结构。它应该在那里显示“包含在文件中”,通常您可以再折叠几次。
-
用相关细节更新了问题。
标签: c++ xcode poco objective-c++ poco-libraries