在加载静态库.lib,和静态库附加的头文件找不到问题记录

在加载静态库.lib,和静态库附加的头文件找不到问题记录,第1张

在加载静态库.lib,和静态库附加的头文件找不到问题记录

注意点:

1、如果是.lib静态库找不到 就在buildSetting ->library s

2、如果是静态库的头文件找不到 看buildSetting ->header search path 是否指向你工程中单导入的静态库头文件 找不到就在这个位置从新指向 如图1

3、.framework 同理

不一定需要。创建一个库一般处于一下两种目的:

1、把一些相关的代码,打包成一个库,发布给其它的人用。

这中情况是最常见的情况,如写

C

语言用到

libgcc。在这种情况下,你除了提供库文件:静态库[

windows

.lib,linux

.a];动态库:[Windows

.dll,Linux

.so]

之外,必须提供头文件。头文件是你这个库里面提供了那些接口可以供外界使用。如果没有头文件,其他人无法使用。

2、为某些软件写插件。

很多大的项目,都是模块化设计,留有一些特定的接口,方便定制。当程序运行时,会动态加载制定目录下的动态库,运行时调用动态库里面约定好的方法。

这种情况无需提供头文件,但要按照特定的约定来实现这个库。

大概就是以上这些情况。

1、选择指定的项目和Target

2、展开“Build Phases”下的“Copy Files”,点击红框3标注的+按钮

3、在红框标注的输入框中输入:*.h

4、这是为了将项目中的.h文件筛选出来

5、记得展开树状控件所有的节点,然后按Command + A全选.h头文件,然后点击啊“Add”按钮

6、PS:如果不展开节点,那全选时会忽略那些没有展开的节点中的文件

7、选择“Products”菜单下的“Build”编译项目

8、这个时候发现所有头文件都在指定的目录下

9、仅仅将头文件拷贝到一个目录下是不够的。实际上项目的目录结构如下图一样,可能希望头文件的输出目录结构跟项目中的目录结构是一致的。如果需要这样,那么请继续看下去

10、在“Build Phases”中展开+按钮,选择“New Copy Files Phase...”

11、在新的“Copy Files”中修改红框标注的Subpath的值,此处只为了拷贝Data子目录下的头文件,所以它的值改成了:include/$(PRODUCT_NAME)/Data

12、选择Data目录下的头文件,点击“Add”按钮添加这些头文件

13、重复步骤8,9,10,完成其余目录下头文件的复制任务

14、最后看到在输出目录下头文件的目录结构跟项目的目录结构时一致的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7911011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存