Makefile не установит каталог включения для opencv4 - PullRequest
0 голосов
/ 11 июля 2019

У меня проблема с моим make-файлом. Он не установит каталог включения opencv.

Makefile:

# Basic Vars
VERSION = 0.01
BIN = ./bin64/
SOURCE = ../native/

# DC Lib files
OBJ = $(addprefix $(BIN), DCFile.o \
                          DCDirectory.o \
                          DCSettings.o \
                          DCArguments.o \
                          DCSupport.o \
                          DCSQLConnection.o \
                          DCSQLSMRndArticle.o \
                          DCSQLStatement.o \
                          DCMachineLearning.o \
                          DCNeuralNetwork.o \
                          DCMarkerDetection.o \
                          DCTire.o \
                          DCEllipse.o \
                          DCGabor.o \
                          DCDewarp.o \
                          DCRimTrainData.o \
                          DCRimTrainDataGrab.o \
                          DCRimTrainDataGrabHD.o \
                          DCRimDetector.o \
                          DCTool.o)

# TOOL Specifics
# Classificator:
OBJ_CF = ./Classificator/Classificator.o
NAME_CF = classificator

CC = g++
CFLAGS = -Wall -O2 -s -DNDEBUG -DVERSION=\"$(VERSION)\"
CFLAGS += -I/usr/local/include/opencv4
LDFLAGS = -lopencv_core -lopencv_videoio -lopencv_imgproc -lopencv_imgcodecs -lopencv_highgui -lopencv_ml -lopencv_calib3d -lopencv_features2d -lpthread -lmysqlcppconn -lmysqlcppconn8


# Build Rules
all: classificator

classificator: makedir $(OBJ) $(OBJ_CF)
    $(CC) $(CFLAGS) -o $(BIN)$(NAME_CF) $(OBJ) $(OBJ_CF) $(LDFLAGS)

$(BIN)%.o: $(SOURCE)%.cpp
    $(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS)

makedir:
    mkdir -p $(BIN)

clean:
    rm -rf $(BIN)

definclude.h

#pragma once

// Basic
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <cstdlib>

// Threading
#include <thread>
#include <chrono>
#include <mutex>

// OpenCV
#include <opencv2/opencv.hpp>

Этот массаж был возвращен после этой команды: сделать классификатор

g ++ -c -o Классификатор / Classificator.o Classificator / Classificator.cpp В файл включен из Классификатор /../../ родной / DCSupport.h: 3, from Classificator / Classificator.cpp: 4: Classificator /../../ native / definclude.h: 15: 10: фатальная ошибка: opencv2 / core.hpp: Datei oder Verzeichnis nicht gefunden #include ^ ~~~~~~~~~~~~~~~~~

Но папка содержит следующие файлы:

root@debian:/usr/local# dir /usr/local/include/opencv4/opencv2/ -l
insgesamt 1452
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 aruco
-rw-r--r-- 1 root staff  31327 Jun 12 08:43 aruco.hpp
-rw-r--r-- 1 root staff  16481 Jun 12 08:43 bgsegm.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 bioinspired
-rw-r--r-- 1 root staff   2716 Jun 12 08:43 bioinspired.hpp
drwxr-sr-x 2 root staff   4096 Jul 11 10:09 calib3d
-rw-r--r-- 1 root staff 182569 Jun 11 10:13 calib3d.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 ccalib
-rw-r--r-- 1 root staff   6910 Jun 12 08:43 ccalib.hpp
drwxr-sr-x 7 root staff   4096 Jul 11 10:09 core
-rw-r--r-- 1 root staff   5550 Jun 12 08:43 core_detect.hpp
-rw-r--r-- 1 root staff 151515 Jun 11 10:13 core.hpp
-rw-r--r-- 1 root staff   3417 Jul 11 09:32 cvconfig.h
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 datasets
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 dnn
-rw-r--r-- 1 root staff   3347 Jun 11 10:13 dnn.hpp
-rw-r--r-- 1 root staff   6805 Jun 12 08:43 dpm.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 face
-rw-r--r-- 1 root staff  17092 Jun 12 08:43 face.hpp
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 features2d
-rw-r--r-- 1 root staff  65434 Jun 11 10:13 features2d.hpp
drwxr-sr-x 2 root staff   4096 Jul 11 10:09 flann
-rw-r--r-- 1 root staff  26646 Jul 11 09:30 flann.hpp
-rw-r--r-- 1 root staff   6900 Jun 12 08:43 freetype.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 fuzzy
-rw-r--r-- 1 root staff   3385 Jun 12 08:43 fuzzy.hpp
drwxr-sr-x 8 root staff   4096 Jul 11 10:09 gapi
-rw-r--r-- 1 root staff    932 Jul 11 09:30 gapi.hpp
-rw-r--r-- 1 root staff   6177 Jun 12 08:43 hfs.hpp
drwxr-sr-x 2 root staff   4096 Jul 11 10:09 highgui
-rw-r--r-- 1 root staff  36215 Jun 11 10:13 highgui.hpp
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 imgcodecs
-rw-r--r-- 1 root staff  16443 Jun 11 10:13 imgcodecs.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 img_hash
-rw-r--r-- 1 root staff   2965 Jun 12 08:43 img_hash.hpp
drwxr-sr-x 4 root staff   4096 Jul 11 10:09 imgproc
-rw-r--r-- 1 root staff 228365 Jun 11 10:13 imgproc.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 line_descriptor
-rw-r--r-- 1 root staff   6834 Jun 12 08:43 line_descriptor.hpp
drwxr-sr-x 2 root staff   4096 Jul 11 10:09 ml
-rw-r--r-- 1 root staff  92264 Jun 11 10:13 ml.hpp
drwxr-sr-x 2 root staff   4096 Jul 11 10:09 objdetect
-rw-r--r-- 1 root staff  36007 Jun 11 10:13 objdetect.hpp
-rw-r--r-- 1 root staff   4503 Aug 13  2018 opencv.hpp
-rw-r--r-- 1 root staff    752 Jul 11 09:32 opencv_modules.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 optflow
-rw-r--r-- 1 root staff  14276 Jun 12 08:43 optflow.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 phase_unwrapping
-rw-r--r-- 1 root staff   3196 Jun 12 08:43 phase_unwrapping.hpp
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 photo
-rw-r--r-- 1 root staff  37887 Jun 11 10:13 photo.hpp
-rw-r--r-- 1 root staff   5346 Jun 12 08:43 plot.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 quality
-rw-r--r-- 1 root staff    469 Jun 12 08:43 quality.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 reg
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 rgbd
-rw-r--r-- 1 root staff    669 Jun 12 08:43 rgbd.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 saliency
-rw-r--r-- 1 root staff   4302 Jun 12 08:43 saliency.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 shape
-rw-r--r-- 1 root staff   2461 Jun 12 08:43 shape.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 stereo
-rw-r--r-- 1 root staff  14356 Jun 12 08:43 stereo.hpp
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 stitching
-rw-r--r-- 1 root staff  13772 Jun 11 10:13 stitching.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 structured_light
-rw-r--r-- 1 root staff   3525 Jun 12 08:43 structured_light.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 superres
-rw-r--r-- 1 root staff   8287 Jun 12 08:43 superres.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 surface_matching
-rw-r--r-- 1 root staff  22598 Jun 12 08:43 surface_matching.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 text
-rw-r--r-- 1 root staff   5230 Jun 12 08:43 text.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 tracking
-rw-r--r-- 1 root staff  11893 Jun 12 08:43 tracking.hpp
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 video
-rw-r--r-- 1 root staff   2544 Aug 13  2018 video.hpp
drwxr-sr-x 3 root staff   4096 Jul 11 10:09 videoio
-rw-r--r-- 1 root staff  54206 Jun 11 10:13 videoio.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 videostab
-rw-r--r-- 1 root staff   3674 Jun 12 08:43 videostab.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 xfeatures2d
-rw-r--r-- 1 root staff  41604 Jun 12 08:43 xfeatures2d.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 ximgproc
-rw-r--r-- 1 root staff   9756 Jun 12 08:43 ximgproc.hpp
-rw-r--r-- 1 root staff   3445 Jun 12 08:43 xobjdetect.hpp
drwxr-sr-x 2 root staff   4096 Jun 12 10:23 xphoto
-rw-r--r-- 1 root staff   2508 Jun 12 08:43 xphoto.hpp
root@debian:/usr/local#

Что я должен сделать, чтобы решить эту проблему? Спасибо!

1 Ответ

0 голосов
/ 11 июля 2019

Мне кажется, проблема в том, как make обрабатывает цель $(OBJ_CF). Это расширяется до ...

./Classificator/Classificator.o

, который не соответствует определенному правилу ...

$(BIN)%.o: $(SOURCE)%.cpp

Следовательно, make обратится к встроенному правилу для компиляции файла c++, который вызовет ...

$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c

Так что либо определите свое собственное правило для ./Classificator/Classificator.o, либо установите CPPFLAGS соответственно ...

CPPFLAGS += -I/usr/local/include/opencv4
...