在iOS工程中引入C++静态库

在工程中引入使用C++编写的静态库是,经常会因为包含标准库而报错:

Snip20130128 3

一般用两种办法可以解决这个问题:

  1. 使用老版本的编译器,如llvm gcc 4.2,而不使用默认的llvm compiler,这时只要将工程中的任意一个.m文件的后缀改成.mm就可以了。xcode会自动引入c++标准库。缺点是不支持ARC等新特性。

    Snip20130128 2

  2. 使用默认编译器,但是引入stdc++.dylib库,这是标准C++库,就可以使用List、Queue等C++类了。

    Snip20130128 1

新的工程最好是使用第二种方法,这样能使用oc以及编译器的一些最新特性。

标签: , , ,
文章分类 iPhone应用开发
1 条评论在 “在iOS工程中引入C++静态库” 上
  1. 学员说道:

    第二种方法确实比较两全其美.一来可以用oc的arc特性.还可以用标准c++的stl东西.
    其实好比是把标准c++库当做一个库来链接.让编译器在链接阶段链接标准c++的动态库.
    戴维营的老师讲解很独特.学习了

发表评论