我正在构建一个iOS项目,我想在OpenSceneGraph的静态库中进行链接。现在,我已将头文件导入到项目中。
在我的ViewController中,我有声明:
#import "osg/Geode"
这不会出错。
(我最初尝试过
#import <osg/Geode>
但Xcode告诉我,我需要使用引号。)
然而,当我尝试编译项目时,Xcode在导入osg / Geode时会遇到问题。该文件包含行
#import <osg/Node>
当Xcode尝试编译时,它会导入“osg / Geode”,然后尝试导入,但尖括号在那里也不起作用,所以它失败了。
如何解决此问题?谢谢!
根据Reck Hou的建议,我在构建设置中编辑了“Header Search Paths”。
"$(SRCROOT)" - recursive
现在,当我尝试编译时,我会收到来自头文件的错误。防爆。 “未知类型名称'命名空间'”,“预期';'在顶级声明者之后“。我也收到错误“'ostream'fiel not found”。
有谁知道如何解决这个问题?谢谢!
答案 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)
我很确定您需要在构建设置中编辑标题搜索路径。