3

我正在构建一个 iOS 项目,我想从 OpenSceneGraph 链接到一个静态库。现在,我已经将头文件导入到项目中。

在我的 ViewController 中,我有以下声明:

#import "osg/Geode"

这不会出错。

(我最初尝试过

#import <osg/Geode>

但 Xcode 告诉我我需要使用引号。)

但是,当我尝试编译项目时,Xcode 在导入 osg/Geode 时遇到了问题。该文件包括该行

#import <osg/Node>

当 Xcode 尝试编译时,它会导入“osg/Geode”,然后它会尝试 import ,但是尖括号在那里也不起作用,所以它失败了。

我该如何解决这个问题?谢谢!

我的代码 OSG 代码

更新

根据 Reck Hou 的建议,我在构建设置中编辑了我的“标题搜索路径”。

"$(SRCROOT)"      - recursive

现在,当我尝试编译时,我收到来自头文件的错误。前任。“未知类型名称'namespace'”,“预期';' 在顶级声明符之后”。我也收到错误“找不到'ostream'字段”。 其他错误 流错误

有谁知道如何解决这个问题?谢谢!

4

3 回答 3

8

进入您的项目设置,然后找到您的构建目标-> build settings

找到Header search paths然后将您的标题路径添加到其中。

例如:

"$(SRCROOT)/[你的头文件路径]"

建议,添加父目录路径无效。

例如,您应该将静态库添加到Build Phases->Link Binary With Libraries以防止链接错误。

于 2013-04-10T04:28:36.310 回答
1

'namespace' 不是有效的 Objective-C 关键字。ScopedLock 文件的扩展名是什么?是.mm吗?您需要告诉 xCode 将其编译为 C++。

为此,请转到您的项目设置,选择目标 -> 构建设置 -> Apple LLVM 编译器 XX - 语言 -> 将源编译为。将其设置为允许混合使用 Objective-C 和 C++ 的 Objective-C++。

于 2013-04-18T11:12:01.713 回答
0

我很确定您将需要在构建设置中编辑标题搜索路径。

于 2013-04-10T02:18:57.293 回答