Ios 在objective C中结合使用@import 当我尝试编译一个目标C++文件(.mm),它链接到一个使用新的@导入指令的文件时,我会得到一些错误。目前,我唯一的解决方案是用旧的#import指令替换@import

Ios 在objective C中结合使用@import 当我尝试编译一个目标C++文件(.mm),它链接到一个使用新的@导入指令的文件时,我会得到一些错误。目前,我唯一的解决方案是用旧的#import指令替换@import,ios,objective-c++,directive,Ios,Objective C++,Directive,是否有其他解决方案,以便我仍然可以使用@import?编辑: 根据最新的文件,现在应该可以了 看。您必须使用-fcxx modules标志,而不是-fmodules标志,但正如官方文档所示-是实验性的,而且非常不稳定的。我根本没能让它工作。。。在我看来,最好坚持使用#import和#include,直到该功能退出实验阶段 发件人: 在我的情况下,我需要在我的应用程序中使用OpenCV 我通过添加 -FCXX模块(ObjultC++)手动“其他C++标志”< /P> (构建设置/苹果CLANG

是否有其他解决方案,以便我仍然可以使用@import?

编辑: 根据最新的文件,现在应该可以了

看。您必须使用
-fcxx modules
标志,而不是
-fmodules
标志,但正如官方文档所示-
是实验性的,而且非常不稳定的
。我根本没能让它工作。。。在我看来,最好坚持使用
#import
#include
,直到该功能退出
实验阶段

发件人:


在我的情况下,我需要在我的应用程序中使用OpenCV

我通过添加

<代码> -FCXX模块(ObjultC++)手动“其他C++标志”< /P>

(构建设置/苹果CLANG自定义编译器标志/其他C++标志)< /P> 或

-fmodules
(目标C)到“其他C标志”

(构建设置/Apple Clang-自定义编译器标志/其他C标志)

而且我还需要在任何苹果的头文件之前输入
opencv.hpp
,以修复opencv库中预期标识符的错误。 例如,在
Prefix.pch
中,我是这样组织的:

#ifdef __cplusplus
#include <opencv2/opencv.hpp>
#endif

#import <Availability.h> 
\ifdef\uuucplusplus
#包括
#恩迪夫
#进口
我正在使用:

  • Xcode-11.3
  • 椰子荚-1.9.1
  • OpenCV2-4.3.0

具体是哪些错误?在凯夫拉尔计划中,构建失败“出乎意料”@,这是三年多前的答案。。根据文件,它现在应该可以工作了。不过我自己还没试过。很抱歉问了这么无聊的问题,但是你把这个放在哪里了flag@IvanGenchev文档正在更新中。你能帮我更新一下答案吗?请你帮我在XCODE中设置这个标志?我把它添加到<代码>构建设置< /代码> ->其他C++标志并与我一起编译。
#ifdef __cplusplus
#include <opencv2/opencv.hpp>
#endif

#import <Availability.h>