Opencv 4 в Ubuntu 18.04 с cuda 9.2

Я скомпилировал opencv 4 и Cuda 9.2 на машине Ubuntu 18.04. Я попытался протестировать образец кода с файлом заголовка OpenCV, который часто использую в своем приложении. При компиляции с помощью nvcc я получаю следующее:

    /usr/local/cuda/bin/nvcc -o saxpy saxpy.cu --std=c++11 -I /opt/sensen/include/ `pkg-config opencv --cflags --libs`
/opt/sensen/include/opencv2/core/types_c.h(1359): error: no suitable constructor exists to convert from "int" to "CvSlice"

/opt/sensen/include/opencv2/core/types_c.h(1359): error: expected a ")"

2 errors detected in the compilation of "/tmp/tmpxft_00004bc8_00000000-8_saxpy.cpp1.ii".

Кто-нибудь еще сталкивался с этой проблемой? Любые предложения приветствуются.

Очевидный ответ - не пытайтесь импортировать этот заголовок в путь компиляции CUDA.

talonmies 17.09.2018 08:31

Извините, я не ясно выразился. Мне нужно включить этот файл заголовка в мое фактическое приложение. Но я получал эту ошибку, поэтому я попытался написать простой код для тестирования, но все равно получал ту же ошибку.

Mandar Sovani 17.09.2018 12:19

Вы совершенно ясно выразились. Но зачем вам импортировать этот файл в код CUDA для? Он не содержит ничего, что можно было бы использовать в ядре CUDA. Я на 100% уверен, что сам OpenCV не пытается скомпилировать содержимое этого заголовка в любом своем внутреннем коде CUDA. Так зачем тебе?

talonmies 17.09.2018 12:33

Унгх. Ваш ответ @talonmies, действительно сопливый. Я также не включаю этот файл напрямую, он попадает в группу, когда вы выполняете компиляцию cuda, и ошибка является неожиданной. Я тоже понимаю. Я использую OpenCV 3.4.4.

eric frazer 04.10.2018 08:20

В Core_c.h: #ifndef OPENCV_CORE_C_H #define OPENCV_CORE_C_H #include "opencv2 / core / types_c.h" ... и т. д.

eric frazer 04.10.2018 08:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
367
2

Ответы 2

Йо Холмс, попробуйте заменить этот странный блок кода следующим:

CV_INLINE  CvSlice  cvSlice( int start, int end )
{
    CvSlice slice = { start, end };
    return slice;
}

у меня сработало! (В Visual Studio 2017)

У меня была та же проблема, что и у @ mandar-sovani.

Я использую Ubuntu 14.04 и OpenCV 3.4.3. Мое решение этой проблемы: проверьте свой код cuda (файлы .cu), какая директива препроцессора #include добавляет заголовок OpenCV. Затем каким-то образом измените свой код, чтобы указанный заголовок не был включен в ваш код cuda (файлы .cu).

Примечание: спасибо @talonmies за понимание решения.

Другие вопросы по теме