iOS库的尖括号导入失败

时间:2013-04-10 02:15:36

标签: xcode import linker

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

在我的ViewController中,我有声明:

#import "osg/Geode"

这不会出错。

(我最初尝试过

#import <osg/Geode>

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

然而,当我尝试编译项目时,Xcode在导入osg / Geode时会遇到问题。该文件包含行

#import <osg/Node>

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

如何解决此问题?谢谢!

My code OSG Code

更新

根据Reck Hou的建议,我在构建设置中编辑了“Header Search Paths”。

"$(SRCROOT)"      - recursive

现在,当我尝试编译时,我会收到来自头文件的错误。防爆。 “未知类型名称'命名空间'”,“预期';'在顶级声明者之后“。我也收到错误“'ostream'fiel not found”。 Other errors Ostream error

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

3 个答案:

答案 0 :(得分:8)

进入您的项目设置,然后找到您的建筑目标 - &gt; build settings

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

例如:

  

“$(SRCROOT)/ [您的标题路径]”

建议,添加父目录路径不起作用。

e.g。您应该将静态库添加到Build Phases - &gt; Link Binary With Libraries以防止链接错误。

答案 1 :(得分:1)

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

为此,请转到“项目设置”,选择“目标” - >构建设置 - &gt; Apple LLVM编译器X.X - 语言 - &gt;编译源代码。将其设置为Objective-C ++,它允许混合使用Objective-C和C ++。

答案 2 :(得分:0)

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