xcode 中 c++ Standard Library的选择 和 如何混编c++

    

1.  如何混编c++

用 Xcode4 创建一个 工程,如果在任意一个文件AAA.h的头部加入

     

#include<string>

using  namespace  std;


编译运行,就会发现,编译不通过,提示为:

 'string' file not found


原因就是文件后缀应该从.m改为.mm,这样就支持 c++混编了,必须将引用到c++混编的AAA.h的所有文件后缀都改为.mm,否则还是会编译不过。所以,为了保险,我一般将所以的文件后缀都全部改为.mm.


2.   c++ Standard Library的选择

    如果你在 summary 中 的Deployment  Target 中选择了4.3,而不是XCode默认的6.0,那么你在 混编C++的时候还可能会遇到另外一个错误:

clang: error: invalid deployment target for -stdlib=libc++ (requires iOS 5.0 or later)

clang failed with exit code 1

原因是 XCode 的 Build Setting中 的 C++  Standard  Library默认选择了 

libc++ (LLVM C++ standard library with c++11 support)选项,这个表示支持c++11的最新特新,

但是它只支持ios5以上,所以如果要使用这个选项,有两个选择:

    第1个选择就是 将Deployment Target中 改为5.0以上,一般不会这样,因为我们一般想支持的sdk越低越好,尽量支持低版本的ios设备。

    第2个选择就是 将这个 C++ Standard Library选项改为 libstdc++ (GNU  c++  standard  library ),它支持最低到4.3 .

    


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

xcode 中 c++ Standard Library的选择 和 如何混编c++

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭