C ++ ссылка библиотека OpenCV из папки проекта - PullRequest
1 голос
/ 17 марта 2020

Итак, у меня есть два компьютера на компьютере. Я установил OpenCV и написал программу, которая использует библиотеку. На втором компьютере (B) я хочу запустить и идеально скомпилировать программу без необходимости установки библиотеки OpenCV.

моя структура папок:

Program
|-- Main.h
|-- Main.cpp
|-- Driver.h
|-- ...
|-- opencv2
|   |-- aruco
|   |-- bioinspired
|   |-- ...
|   |-- ...
|   |-- core.hpp
|   |-- ...

И я включаю opencv в свой Программа, подобная этой:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

Так как я работаю в VS Code У меня есть задачи. json:

/* tasks.json */
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "clang++",
            "args": [

                "-std=c++17",
                "-o",
                "Main", // executable
                "Main.cpp", // main file
                "Driver.cpp",
                "DetectRegions.cpp",
                "Plate.cpp",
                "-g",
                "-v",
                "-debug",
                "$(pkg-config", //here I see biggest problem
                "--cflags", 
                "--libs", 
                "opencv4)"      //as well as here

            ],
            "type": "shell",
            "presentation": {
                "echo": true,
                "reveal": "always",
                "panel": "shared"
            },
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

Ну, это аргументы, которые я нашел на inte rnet, который работал для кого-то еще. Он компилируется на компьютере B, но я уверен, что это причина того, что он не работает на компьютере B. Поскольку я связываю установленную библиотеку OpenCV, а не ту, которая находится в папке с моей программой.

Но если Я пытаюсь переписать «args» на что-то вроде этого, это не работает.


            "args": [

                "-std=c++17",
                "-o",
                "Main", // executable
                "Main.cpp", // main file
                "Driver.cpp",
                "DetectRegions.cpp",
                "Plate.cpp",
                "-g",
                "-v",
                "-debug",
                "$(", 
                "--cflags", 
                "--libs", 
                "./opencv2)"

            ],

Не могли бы вы, ребята, помогите мне с этим и укажите мне, как сделать мою программу переносимой и компилируемой просто используя папку "opencv2", которую я несу со всеми заголовками и cpp файлами?

Спасибо! С уважением, Михал

...