gpt4 book ai didi

c++ - iOS 上的 OpenCv 2.4.9 background_segm.hpp #include 未找到

转载 作者:太空宇宙 更新时间:2023-11-03 22:51:07 25 4
gpt4 key购买 nike

我正在尝试将 OpenCV c++ 桥接到我的 Swift 应用程序。

我收到这个错误:

Users/admin/Desktop/MDAcne/MDAcne/MDAcne-Bridging-Header.h:14:9: note: in file included from /Users/admin/Desktop/MDAcne/MDAcne/MDAcne-Bridging-Header.h:14:
#import "cvVideoWrapper.h"
^
/Users/admin/Desktop/MDAcne/MDAcne/cvVideoWrapper.h:13:9: note: in file included from /Users/admin/Desktop/MDAcne/MDAcne/cvVideoWrapper.h:13:
#import "algo.hpp"
^
/Users/admin/Desktop/MDAcne/MDAcne/algo.hpp:11:10: note: in file included from /Users/admin/Desktop/MDAcne/MDAcne/algo.hpp:11:
#include <opencv2/video/background_segm.hpp>
^
/Users/admin/Desktop/MDAcne/Pods/OpenCV/opencv2.framework/Headers/video/background_segm.hpp:47:10: error: 'list' file not found
#include <list>
^
<unknown>:0: error: failed to import bridging header '/Users/admin/Desktop/MDAcne/MDAcne/MDAcne-Bridging-Header.h'

cvVideoWrapper.h 和 cvVideoWrapper.mm 将桥接 header 连接到 algo.hpp,这是 c++ 文件。algo.hpp 包括那些库:

#include <opencv2/video/background_segm.hpp>
#include <opencv2/video/tracking.hpp>

其中包含 #include <list>据我所知,这是导致问题的 C 文件。

我在 another question 中看到这可以通过将 .m 文件更改为 .mm 文件来解决。我已经这样做了,但仍然出现此错误。此外,在我的例子中,它似乎发生在 cvVideoWrapper.h 文件中。

如何解决这个问题?

最佳答案

#include <list>

是 C++ header ,因此您需要使用 obj-c++ 编译器进行构建。根据您的构建环境,使用 .mm 后缀通常足以调用 obj-c++ 编译器。

你是如何构建这个的?以及包含什么文件

/Users/admin/Desktop/MDAcne/MDAcne/MDAcne-Bridging-Header.h

该文件还需要一个 .mm 后缀...

编辑:如下所述,用户试图直接从 swift 中包含 obj-c++。这是行不通的:

Can I mix Swift with C++? Like the Objective - C .mm files

使用 obj-c++ 包装器并且不包含来自 swift 的 c++ header ;直接包含链上的任何内容都不能引用 C++。所以,移动:

#include <list>

到 cvVideoWrapper.mm 文件。您可能需要重新设计一些东西。

关于c++ - iOS 上的 OpenCv 2.4.9 background_segm.hpp #include <list> 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com