OC 与 C++ 混编导致的问题

最近项目中用到 std::function.  在导入头文件的时候,发现问题总是报头文件无法找到。但是我通过xcode 跳转都能够跳转到对应的文件了

#include <string.h>
#include <functional>

1、一开始以为是 链接库的问题   于是添加 libstdc++.tbd 发现没用。

2、考虑到是否是 文件搜索路径的问题, 经过与 cocos 工程进行对比发现不是这个问题。

3、考虑是否是 编译设置的问题

build setting 里面设置支持 C++11 也没用

4、后面考虑到是否是混编的问题

必须将引用到 c++混编的 .h 的所有文件后缀都改为 .mm。

.m  是 objective c 语言文件,仅支持 object c 和 c 语言混编。

.mm 是 objective c++ 语言文件, 支持的是 objective c语言和 c++ 语言混编。

解决方案来自:  https://blog.csdn.net/tangaowen/article/details/8648990

但是这时候又遇到

这个问题,需要将所有引用的

#include "MyWebView.h"
改成
#import "MyWebView.h"

#import 和 #include 的区别 留待后面再写, 这里主要是记录遇到的这几个问题

原文地址:https://www.cnblogs.com/lesten/p/10035725.html

时间: 2024-11-06 22:00:38

OC 与 C++ 混编导致的问题的相关文章

由于源码使用是c\c++与oc混编导致Unknown type name &#39;NSString&#39;

今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 解决方案三: 将Compile Sources As 改为 Objective-C++ 由于源码使用是c\c++与oc混编导致Unknown type name 'NSString'

OC跟Swift混编

OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue  独立博客:http://mengxiangyue.com 最近公司的项目开始计划使用Swift,由于原先的工程都是使用OC编写的,不可能一下全部转换成Swift,所以采用OC与Swift混编的方式是最好的选择.这篇文章只是一个简单的介绍,并没有太高深的知识. 我新建了一个演示的OC工程,当然你可以使用你已经存在的OC的工程.如果我们想要在OC工程

初探swift语言的学习笔记九(OC与Swift混编)

swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift import Foundation class Act : NSObject { func hasAct(tag:Int) -> String { swit

Swift语言学习之OC和Swift混编

本文转自http://www.helloswift.com.cn/swiftbase/2015/0112/3469.html iOS OC和Swift混编 1.创建一个swift或者oc的工程:我这里是创建的Swift语言的工程,工程名SwiftTest 2.在工程中代码目录下创建一个oc的类,选择oc语言, 会出一个对话框,选择YES          3.这时会在工程里看到下图这样一个头文件           4.在这个头文件里添加你的OC文件的.h文件,就可以在任意swift文件中自行调

关于oc和swift混编 框架framework时 只能在真机运行或只能在模拟器单独运行的解决方案

问题描述: 关于oc和swift混编 框架framework时 只能在真机运行或只能在模拟器单独运行的解决方案. 问题提供者:by 走跑 解决方案: 首先制作swift版本的framework(Cocoa Touch Framework)取名FirstMixed 1. 工程里面新建一个SwiftView.swift文件,继承UIView,class必须是public修饰 2. 生成真机和模拟器通用的FirstMixed.framework参考这篇文章的制作通用动态库部分,这里面有教如何生成真机和

IOS --- OC与Swift混编

swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift   [cpp] view plaincopy在CODE上查看代码片派生到我的代码片 import Foundation    class Act : NSO

IOS --- OC与Swift混编(转)

原文地址:http://blog.sina.com.cn/s/blog_8d1bc23f0102v5tl.html swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift import Foundation cl

oc和swift混编关键

1.桥接头文件——xx-Bridge-Header.h swift和oc混编连接点,必不可少.swift工程或oc工程添加oc或swift时,Xcode提醒,建议手动添加. 注意引入文件后Xcode的target->build settings自动添加Swift Compiler * 项,Objective-c Bridging Header项填写此文件路径(xx/xx-Bridge-Header.h,xx为工程名) 2.隐藏头文件——xx-Swift.h 必不可少.oc试用swift时,Xco

oc与swift混编教程

学了一天swift,搞定它与oc的混编后突然觉得这语言还是可以的 下面简单说一下它的搞法   1.创建一个swift或者oc的工程:我这里是创建的Swift语言的工程,工程名SwiftTest   2.在工程中代码目录下创建一个oc的类,选择oc语言, 会出一个对话框,选择YES          3.这时会在工程里看到下图这样一个头文件           4.在这个头文件里添加你的OC文件的.h文件,就可以在任意swift文件中自行调用所包含的oc文件了.   5.接下来在工程的target