xcode生成静态库文件.a

工具:xcode

环境:C/C++,没有用到obj-c

  1. 用xcode创建一个静态库文件  
    1. 选择ios-->Cocoa Touch Static Library
    2. 输入项目的名字,语言选择obj-c(我们不用obj-c,但是没有C/C++选项,步影响),点击next
    3. 选择一个文件夹,create
    4. 可以把自动生成.h和.m文件删除,因为我们不需要用到.m。如果有需要的可以保留
    5. 创建自己的源文件.cpp和.h
    6. 为文件起个名字,在同时创建头文件上打勾
    7. 选择当前文件,点击create
    8. 最后的文件架构
    9. 写一个简单的函数
      1. 头文件
      2. 源文件
    10. 点击左上角三角箭头,编译。如果语法没错的话,会提示"build succeeded",表示.a文件已经生成
    11. 查看.a文件所在的文件夹,右键点击.a文件。进入文件所在文件夹,发现只有.a文件。但是我们知道,使用静态库必须得有头文件,所以我们要进行一些设置。


    12. 按照以下步骤配置

    13. 再次编译,然后进入.a文件所在文件夹。发现多了一个include文件夹,点进去,发现多了一个lib.hpp头文件。当我们要将我们的库提供给别人时,只要将.a和所有的.h文件都给别人就好了。
    14. 这一步不是必须,但是最好做。就是为该库同时添加arm架构和intel架构,使该库可以同时在arm上和pc上同时使用


    15. 然后再次编译,我们的静态库就创建好了

  2. 在上面成功的创建了静态库后,接下来就要试一下我们创建的库是否成功,能否正确的被调用

    1. 在xcode中新建一个C++工程

    2. 输入文件名字,语言选择C++,点击next

    3. 选择当前文件夹,点击create

    4. 将我们在第一步中创建的库(.a文件)及其头文件全部复制过来,可以直接将原文件拖动到file文件夹下,在拖动完后会弹出一个对话框,如果是.a库文件,则需要将file前面的勾打上,如果是头文件则不需要。
      .a库文件

      .h头文件

    5. 最后生成的文件架构图

    6. 最好按照这个来,如果将头文件和库文件放在别的文件夹中,也可以做,但是需要设置头文件的位置。需要另外说明,本文不做赘述。

    7. 我们在main.cpp中添加头文件,及调用我们的库函数

    8. 点击左上角三角箭头 运行,不出意外,正常运行,打印消息。注意,如果这一步编译错误,提示link或者i386或者x86之类的信息,那么你就是在第一大步中的第14小步没做,导致该库没有i386和x86的架构,最终导致编译失败。

  3. 上面这个例子是在mac电脑上的c++文件中做实验的,我们也可以把我们制作的.a用到别的库文件中,比如我们可以创建.framwork库和别的.a库,在里面加入我们创建的.a文件。同样的方法。

下面说几点需要注意的:

  • 注意我们创建的库的架构和调用该库文件的架构是否一致
  • 注意在发布的时候该库是否为真机版本和虚拟机版本的综合
  • 如果在加入库后找不到函数,可能是我们在创建.a文件时,没有将包含该函数的源文件加入到编译中,可以按照下图的步骤,看源文件是否添加到了Compile Sources中。如果是将源文件通过拖动的方式添加到工程里面的,那多半是没有的,需要自己手动添加,或者在拖动完后的对话框中看看看看有没有添加进编译的选项,打上勾。一般关于文件方面的问题就多找找打圈圈这些项目。特别是源文件,头文件,其他库,多半是这里出问题了

猜你喜欢

转载自blog.csdn.net/qq_34759481/article/details/83541346
今日推荐