当前位置: 首页 > news >正文

XCode16中c++头文件找不到解决办法

XCode16中新建Framework,写完自己的c++代码后,提示“<string> file not found”等诸如此类找不到c++头文件的错误。
工程结构如下:
在这里插入图片描述

App是测试应用,BoostMath是Framework。基本结构可以参考官方demo:Mix Swift and C++ within a single framework target。

按照官方文档,要启用swift和c++混编,要在App和BoostMath改为如下设置:
在这里插入图片描述
import到伞头文件BoostMath.h里的其他头文件也要改为public的。例如
在这里插入图片描述
那么要在BoostMath的Build Phase中将math_func.hpp也改为public的。
在这里插入图片描述
这样,如果只用c语言来写public header,就没问题了。但是如果public header需要用c++来写,那么还需要一个设置:

在这里插入图片描述
注意要在App和Framework中都设置这项。
这里默认是objective-c objective-c++,那样的话是无法找到c++头文件的,需要删除objective-c。猜测是混编的桥接文件是c或者oc的,在oc时代与c/c++混编的话,如果是oc文件引入c++文件也会出现c++头文件找不到的错误,目前网上出现这种问题基本都是提示是否是mm文件引用了c++文件。

====== 更新 ========
经过测试,module verifier是可以关闭的。如果我们切换到主工程或者App的设置页面,发现它默认是关闭的,只有对clang module是打开的:

在这里插入图片描述
关闭module verifier之后,就不用改supported languages了。并且还会大幅提升Framework的编译速度。

http://www.lryc.cn/news/471405.html

相关文章:

  • CSS - 保姆级面试基础扫盲版本一
  • 51c自动驾驶~合集2
  • Redis后台任务有哪些
  • TPair<TKey, TValue> 键值对
  • 【杂谈】城市规划教育的危与机
  • 金融工程--pine-script 入门
  • Vue3 跨标签页或跨窗口通信
  • Ollama: 使用Langchain的OllamaFunctions
  • java质数的判断 C语言指针变量的使用
  • TensorFlow面试整理-TensorFlow 数据处理
  • vue路由的基本使用
  • 数据结构分类
  • 【STM32】 TCP/IP通信协议--LwIP介绍
  • 一些面试题整理
  • 端口号和ip地址一样吗?区别是什么
  • 深入探讨全流量回溯分析与网络性能监控系统
  • python机器人编程——一种3D骨架动画逆解算法的启示(上)
  • Flutter开发者必备面试问题与答案02
  • 拥抱真实:深度思考之路,行动力的源泉
  • 【Python爬虫实战】深入理解Python异步编程:从协程基础到高效爬虫实现
  • OpenCV图像处理方法:腐蚀操作
  • PG数据库之流复制详解
  • Python酷库之旅-第三方库Pandas(174)
  • 【Linux网络】基于TCP的全连接队列与文件、套接字、内核之间的关系
  • IDE(集成开发环境)
  • 一键导入Excel到阿里云PolarDB-MySQL版
  • Oracle有哪些版本
  • 先来先服务(FCFS,First-Come, First-Served)调度算法
  • Windows操作系统忘记密码怎么办 这个方法屡试不爽 还不来试一下
  • 基于java的山区环境监督管理系统(源码+定制+开发)环境数据可视化、环境数据监测、 环境保护管理 、污染防治监测系统 大数据分析