RESOLVED: Я не совсем уверен, почему и как, но когда я изменился с -I ~/dlib-18.18 на -I ../ dlib-18.18, тогда он работает.g ++ не распознает каталог include
Я пытаюсь написать makefile, который компилирует программу, используя библиотеку dlib. Я загрузил и установил библиотеку в каталог корней.
Заголовок файла .cpp выглядит следующим образом:
#include "dlib/optimization.h"
#include <iostream>
папка dlib входит в dlib-18.18 и optimization.h действительно в папке dlib.
Ниже представлен мой файл makefile (или его часть). Я включил соответствующий каталог в CFLAGS. Однако, во время компиляции, г ++ говорит, что он не может найти optimization.h (Нет такого файла или каталога)
EXUCUTABLE = graph
CXX = g++
CXXFLAGS = -I. -I/usr/include/ -I~/dlib-18.18
FLAGS = -g -O -Wall -Wextra -Werror -Wfatal-errors -std=c++11 -pedantic
############### Rules ###############
all: ${EXUCUTABLE}
clean:
rm -f ${EXUCUTABLE} *.o
## Compile step (.cpp files -> .o files)
%.o: %.cpp
${CXX} ${FLAGS} ${CXXFLAGS} -c $<
graph: graph.o
${CXX} ${FLAGS} $^ -o [email protected]
The /dlib-18.18/dlib folder when accessed from the terminal
Вы упомянули '.cpp', но имеете правило'% .o:% .c'. Разве это не должно быть '% .o:% .c% .cpp' или установить' CXXFLAGS'? –
Итак, путь к заголовку: '/ dlib-18.18/dlib/optimization.h'? Это кажется странным по двум причинам, вероятно, неправильным для одного из них. Возможно, неверно, что у вас есть заголовки библиотеки, расположенные в специальной папке в корне. Вы уверены, что не имели в виду '/ usr/include/dlib-18.18','./Dlib-18.18', или что-то еще? Во-вторых, заголовки хранятся в поддиректории 'dlib'' dlib-18.18', или вы имели в виду '#include 'dlib-18.18/optimization.h?'? –