【发布时间】:2013-05-26 12:01:40
【问题描述】:
我在编译支持 GPU 的 OpenCV 245 时遇到了很多麻烦。经过一番努力,我设法让 cuda 支持启动并运行,但现在我被困在 opencl 上,这是问题所在:
在编译期间的某个时间点,会生成文件 kernels.cpp,其中包含所有内核函数作为字符串。据我了解,它们是使用 cl2cpp.cmake 脚本从 .cl 文件自动转换的。
我不明白的是,构建中排除了一个文件:在 Visual Studio 项目或kernels.cpp 是自动生成的。这会导致链接时出现未定义的错误。
我尝试手动将 nonfree_surf.cl 添加到 Visual Studio 项目中。这不会改变任何事情。在 ocl 模块的 CMakeLists.txt 中,所有 cl 文件似乎都自动添加了以下行:
file(GLOB CL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/kernels/*.cl")
我已尝试手动将 nonfree_surf 添加到 CL_FILES,但没有效果。
我对 CMake 知之甚少,因此我不太了解发生了什么。有人可以告诉我如何找到这种行为的原因,即:
为什么所有 .cl 文件都添加到我的 VS 项目中,除了 nonfree_surf.cl ?
我该如何纠正这个问题?
也许我可以手动执行 cl2cpp.cmake 脚本?如果有,怎么做?
【问题讨论】:
标签: visual-studio-2010 opencv cmake opencl