gpt4 book ai didi

c++ - 将我的方法添加到 OpenCV

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

我想在 OpenCV 库中添加新方法。我制作了 my_funct.cpp,其代码非常简单:

#include "precomp.hpp"
#include <stdio.h>
void cv::my_funct(){
printf("%s\n","Hello world!");
}

我添加了标题 CV_EXPORTS_W void my_funct();到文件 C:\opencv\build\include\opencv2\imgproc\imgproc.hpp 和 C:\opencv\sources\modules\imgproc\include\opencv2\imgproc\imgproc.hpp。然后我使用 CMake 为整个库构建新的二进制文件,但是当我创建一个使用 my_funct() 的新项目时,出现错误:

The procedure entry point _ZN2cv8my_functEv could not be located in the dynamic link library path_to_this_project\project.exe.

其他 opencv 函数工作得很好。我正在使用 mingw32 编译库,OpenCV 的版本是 2.4.9。你能告诉我我做错了什么吗?

最佳答案

这看起来像是 MinGW 运行时错误。因此,假设您在构建 project.exe 时没有遇到任何编译器或链接器错误,您的可执行文件很可能找不到与您的匹配的 .dll .dll.a 导入库(必须包含 my_funct() 定义)。

我建议在开发阶段 - 不要谈论 install()脚本 - 使用 add_custom_command() 添加构建后步骤和 generator expressions将正确的 DLL 复制到您的 project.exe 旁边:

add_custom_command(
TARGET project
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"<... path to matching DLL ...>"
"$<TARGET_FILE_DIR:project>"
)

当然,您也可以让 CMake 找到匹配的 DLL,但在我深入细节之前,我需要查看您的 project.exe CMake 脚本。

也许也是个好主意 - 如果您正在扩展 OpenCV 代码 - 将使用 ExternalProject_Add()将 OpenCV 包含到您的项目中。

引用资料

关于c++ - 将我的方法添加到 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34133262/

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