gpt4 book ai didi

c++ - 混合CPP OpenCV/主程序C

转载 作者:行者123 更新时间:2023-11-30 17:25:13 24 4
gpt4 key购买 nike

我有一个基于 C 的主项目,我需要包含一个 CPP 函数(使用 OpenCV)。我使用 Cmake 文件来执行此操作,但当我添加 cpp 文件时,它不再起作用。

这是我的 Makefile

    cmake_minimum_required (VERSION 2.8.9)

project(tictactoe)

### Requierements

find_package(OpenCV REQUIRED )
include_directories(../Sources)
include_directories(${OpenCV_INCLUDE_DIRS})
include(CheckIncludeFiles)
include(CheckIncludeFileCXX)
### Subdirectories where the sources are

FILE(GLOB MyCSources "../Sources/*.c")
ADD_LIBRARY(detect_tag ../Sources/detect_tag.cpp ../Sources/detect_tag.hpp)
ADD_EXECUTABLE(tictactoe ${MyCSources} ../Sources/detect_tag.cpp ../Sources/detect_tag.hpp)

TARGET_LINK_LIBRARIES(tictactoe rt ${CMAKE_THREAD_LIBS_INIT} ${OpenCV_LIBS})

最佳答案

好的,我使用包装器解决了我的问题:我制作了一个头文件,如wrapper.h和wrapper.cpp。

在wrapper.h中我得到:

extern "C" my_function_through_wrapper();

在wrapper.c中我得到:

#include file_where_my_function_if.h
extern "c" {

my_function_through_wrapper(){
my_function();
}

}

就是这样!事实上,我已经在真正的损坏 CPP 和 C 代码之间建立了接口(interface)。使用 extern C,我的编译器知道如何很好地编译包装文件,以便我的 C 代码可以链接到它。然后,通过包装器,可以使用 CPP 中包含的所有库将 CPP 链接到其他 CPP 代码。解决了 !

关于c++ - 混合CPP OpenCV/主程序C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27094134/

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