包含标头会导致解析问题
including header causes parse issues
我为C++编写了一个Objective-C包装器,所以在主文件中,我只需要使用C++代码。在一个测试项目中,它完美地工作,所以我想在一个相当大的游戏中实现。问题是,在我只使用
#include "ViewWrapper.hpp"
在我的基节点类(来自 Cocos2d-x 的 CCNode.h
)中,我在另一个文件中(named_params.hpp
来自"Boost")中得到了很多解析、语义和 Leixcal 或 Prepocessor 问题,但没有真正使用它,只编写包含。如果我删除它,一切正常。有谁知道这是什么原因?
(在我的测试项目中,我也将其包含在CCNode
中,没有问题。
编辑:ViewWrapper.hpp
代码:
#ifndef __Cocos__ViewWrapper__
#define __Cocos__ViewWrapper__
#include <CoreGraphics/CGGeometry.h>
#include <CoreGraphics/CGColor.h>
class ViewWrapper
{
public:
const char* accessibilityLabel();
void setAccessibilityLabel(const char* accessibilityLabel);
CGRect accessibilityFrame();
void setAccessibilityFrame(CGRect accessibilityFrame);
CGRect frame();
void setFrame(CGRect frame);
CGColorRef backgroundColor();
void setBackgroundColor(CGFloat r, CGFloat g, CGFloat b, CGFloat a);
ViewWrapper (CGRect frame);
ViewWrapper (void);
~ViewWrapper (void);
private:
struct Impl;
Impl* impl;
};
#endif /* defined(__Cocos__ViewWrapper__) */
希望有帮助。
错误在 struct nil {...}
中。也许它有一些nil的问题,因为Objective-C使用nil和我的Wrapper wrappsObjective-C代码?但是我的标题是一个.hpp
文件...
答案(无法正确回答,因为它处于保留状态):我删除了两个包含
#include <CoreGraphics/CGGeometry.h>
#include <CoreGraphics/CGColor.h>
并使用了像 CCGeometry.h
和 ccTypes.h
这样的 cocos 标头,因此标头没有 objective-C 代码,编译器不会与 nil 的提升版本混淆。
我的钱在类、枚举、枚举类或结构声明后的丢失;
上:
struct AprilFool
{
}
// IMPAHTANT:
;
// END IMPAHTANT
包含此内容的文件具有什么文件扩展名?显示所有错误的来源是什么?
就编译器而言,标头不存在。它们仅编译源文件。任何编译的标头都有效地"复制到源文件中",就在 include 语句所在的位置。
因此,如果您从 .m 文件中包含此文件,它将编译为 .m (Objective-C)。无论标头是否具有后缀".hpp"。(如果你想了解更多,可以在一本关于C的好书中查找"编译单元",或者听NSBrief第113集,在那里我被要求解释Objective-C++:http://nsbrief.com/113-uli-kusterer/的所有事情)。
了解您拥有哪些内容也会有所帮助。此标头的包含是第一个吗?最后?给出错误的那个是下一个包含它之后吗?文件中是否有包含此内容的代码?如果您将其设置为最后一个包含,它是否有效,或者它只是在包含后的下一行出错?在一个标头末尾发生的错误,毕竟可以"溢出"到下一行,无论是由 include 语句复制粘贴的错误还是在同一标头中。
- 在CMake中使用find_package时,是否会显式包含标头
- GCC 包含标头(使用"-include")CMake 未检测到的更改
- 使用预处理指令检查是否包含标头?
- 更智能地在C++中包含保护,以便在不同的命名空间中多次包含标头
- 如何在 c++ 中有条件地包含标头?
- 双向链表问题 - 包含项目但不显示
- main.cpp 如何知道包含标头的源文件?
- C++ 将问题包含在其他文件中?(提升包括)
- 有没有办法告诉 g++ 编译器,而不是在某个 -I 路径中查找包含标头
- QT 如何包含标头和 cpp 文件
- 在 c++ 中,如果包含标头,为什么我会收到'does not a name of type'错误?
- CLion 无法解析类型 std::unordered_map,即使它提示我包含标头并且编译工作
- 是否可以链接到,包括和使用静态库,而无需额外包含标头/文件
- 为什么包含标头会导致"use of auto before deduction of auto"错误?
- 如何告诉qmake在从dbus xml生成文件时包含标头
- GCC Bug,使用尖括号通过宏包含标头时"linux"路径中的字符串"<>"替换为 "1"
- 如何从平台SDK明确包含标头文件
- 包含标头中的搜索路径因编译器而异
- #include < Dbghelp.h> 不包含标头
- 包含标头会导致解析问题