2013-05-26 1 views
0

У меня много проблем с компиляцией OpenCV 245 с поддержкой GPU. С некоторыми усилиями мне удалось запустить поддержку cuda, но теперь я застрял на opencl, вот в чем проблема:Как скомпилировать opencv 245 с визуальной студией 2010 и поддержкой openCL?

В какой-то момент во время компиляции создается файл kernels.cpp, содержащий все функции ядра как строки. Насколько я понимаю, они автоматически преобразуются из .cl-файлов с помощью скрипта cl2cpp.cmake.

Я не понимаю, что из сборника исключен один файл: nonfree_surf.cl (который находится на моем диске вместе со всеми другими файлами .cl) не включен ни в проект визуальной студии, ни в kernels.cpp, который автоматически генерируется. Это приводит к неопределенной ошибке во время соединения.

Я попытался вручную добавить nonfree_surf.cl в проект визуальной студии. Это ничего не меняет. В CMakeLists.txt для OCL модуля, все ХЛ файлы, кажется, будут автоматически добавлены с линией:

file(GLOB CL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/kernels/*.cl") 

Я попытался вручную добавлять nonfree_surf к CL_FILES, без эффекта.

У меня очень мало знаний о CMake, поэтому я плохо понимаю, что происходит. Может кто-нибудь дать мне понять, как я могу найти причину такого поведения, а именно:

Почему все .cl файлы добавлены в мой проект VS, за исключением nonfree_surf.cl?

Как это исправить?

Возможно, я могу выполнить скрипт cl2cpp.cmake вручную? Если да, то как?

ответ

0

Управляемый его вручную, запустив сценарий:

cmake -DOUTPUT_PATH=c:/opencv/kernels2.cpp -DCL_DIR:PATH=c:/opencv/modules/ocl/src/kernels -P "c:\opencv\modules\ocl\cl2cpp.cmake" 

По какой-то причине (возможно, то же самое, что делает nonfree_surf не обрабатываются), не каждая необходимая функция обрабатывается таким образом, чтобы я Juste копирования вставили nonfree_surf в kernels.cpp и продолжал сборку.

Если кому-то нужен двоичные файлы, так как они являются боль компилировать, вот они:

Opencv 2.4.5 binaries compiled with VS2010 x86 (WIN32) including ocl and gpu library.

Смежные вопросы