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

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.kler.cn/a/370250.html

相关文章:

  • 基于tldextract提取URL里的子域名、主域名、顶级域
  • 1688 满足跨境业务需求而提供的一组 API 接口
  • 总结5..
  • Java虚拟机面试题:内存管理(中)
  • 深度学习 DAY2:Transformer(一部分)
  • 为什么相关性不是因果关系?人工智能中的因果推理探秘
  • 007:无人机遥控器功能介绍
  • 鼠标事件与webGl坐标系
  • RayLink为企业提供高效安全的远程办公环境
  • 架构师备考-非关系型数据库
  • 贵州鑫宏远农业-始终致力于推动现代农业的科技创新与发展
  • 使用 FastGPT + Ollama 搭建本地 AI 客服小助手
  • 【封装小程序log,设定层级】
  • opencv - py_ml - py_kmeans
  • Vue.js从入门到精通 — 基础知识
  • 医学影像基础:常见的医学影像学术语和概念
  • 商场应急管理:SpringBoot技术解决方案
  • 后端:Spring-1
  • 智能EDA小白从0开始 —— DAY30 冉谱微RFIC-GPT
  • canvas基础学习(鼠标点位拖拽)
  • 为什么有的说法是STM32有60个外部中断,有的说法是有23个中断
  • vscode中提升效率的插件扩展——待更新
  • 基于Distil-Whisper的实时ASR【自动语音识别】
  • python实战项目47:Selenium采集百度股市通数据
  • 电商 API 接口:提升用户体验的关键路径深度解析
  • AtCoder ABC376A-D题解