Ошибка при запуске exe, созданного с помощью cmake - PullRequest
0 голосов
/ 11 июля 2019

Я открываю OpenCV v4.1.Я скачал готовую версию сборки и распаковал ее на диск C.Я использую VS Studio 16 вместе с Cmake для создания проекта.Я генерирую файлы, используя ниндзя.

Вот так выглядит мой cmake atm:

cmake_minimum_required (VERSION 3.8)

add_executable (opencv-fun "opencv-fun.cpp" "opencv-fun.h")

target_link_libraries(opencv-fun "path_to_lib_folder/opencv_world410d.lib")

Вот ошибка, которую я получаю:

"Выполнение кодане удается продолжить, поскольку файл opencv_world410d.lib не найден. Переустановка [...] "

Я уже пытался поместить переменные env в системный путь, копировать lib в исходную папку, я также использовал:

link_library("path")

Также я изменил генератор на VS, что тоже не помогло.

Что забавно во всем этом, так это то, что я могу запустить свою программу в CMD, и она работаетна отлично.Ошибка возникает только при попытке отладки в Visual Studio.

РЕДАКТИРОВАТЬ: ОС: Windows 10

РЕДАКТИРОВАТЬ 2: Я должен был быть очень устал, потому что это была проблема .dll не .lib простокак @PiotrK предупредил меня.Извините за вызов с такой глупой проблемой.Спасибо за ответы, ребята.Просто скопируйте-вставьте dll в директорию exe и решили проблему.Есть ли более чистый способ связать .dll, чтобы мне не нужно было копировать и вставлять его?

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Вы можете использовать функции find_package() и set(), чтобы указать путь к каталогу opencv и включить каталоги.

Вот так выглядит мой CMake в Ubuntu.

cmake_minimum_required(VERSION 3.5)
project(test)

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11 -O3")
set(OpenCV_DIR /home/shayan/opencv-4.1.0/local/share/OpenCV)

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(test main.cpp)
target_link_libraries(test ${OpenCV_LIBS}) 
0 голосов
/ 11 июля 2019

Судя по обсуждению, проблема не в компиляции, а в исполнении.

Мне действительно любопытно, почему у вас проблема .lib, а не .dll, но давайте пока оставим это.

Щелкните правой кнопкой мыши проект в Visual Studio -> Properties -> Debugging -> Working Directory и укажите полный путь к исполняемому файлу (за исключением самого исполняемого файла).

Сохраните его и попробуйте снова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...