我有一个使用静态库(.a文件)中的类的目标。
我在XCode中有静态库,它是目标所必需的,并且位于“链接库”部分。
在代码中我使用静态库中的类,如:
#include "class_from_static.h"
但是XCode抱怨找不到文件“class_from_static.h”。不应该找到它吗?
我已经验证静态库确实包含这个类。
问题是什么?
答案 0 :(得分:2)
静态库与框架不同;它们只包含代码,而不是标题。您需要将包含class_from_static.h
的文件夹添加到用户标题搜索路径,或者直接将标题文件添加到项目中。如果双击该设置,则可以将文件夹拖放到列表中。
答案 1 :(得分:1)
除了告诉链接器在哪里找到静态库之外,还必须告诉编译器在哪里找到头文件。将头文件添加到项目中也会将它们添加到编译器的搜索路径中。
答案 2 :(得分:1)
也可以使用父文件夹进行尝试。例如,假设class_from_static.h
位于名为Static
的目录中(也应该是静态库的名称),您可以尝试:
#include <Static/class_from_static.h>
另外,请记住在项目的“构建设置”下的“标题搜索路径”中添加目录(相对于项目根目录)的路径,该目录包含上面的Static
目录(也可能是叫Static
)。例如,Vendor/Static
,其中包含另一个名为Static
的目录:
ProjectDir
|- Vendor
`- Static
`- Static
`- class_from_static.h
这就是SSToolkit的结构。