Я пытаюсь заставить библиотеку dlib работать в моем проекте C++ и не знаю, что делать с моим Makefile и #include‹...> в заголовочном файле моего скрипта. Я поместил свой заголовочный файл и свой скрипт в каталог src. На библиотеку dlib сделана символическая ссылка, ссылка находится в директории include (см. структуру папок ниже).
На сайте dlib написано:
Вы не должны добавлять саму папку dlib в путь включения вашего компилятора.
Вместо этого вы должны добавить папку, содержащую папку dlib, в путь поиска включения, а затем использовать операторы включения в форме #include . Это гарантирует, что все построено правильно.
Единственное, что я хочу, это включить dlib в мой заголовочный файл и заставить его компилироваться, чтобы я мог использовать все функции dlib. Можете ли вы помочь мне с этим?
Структура папок такая:
projectDir
|-Makefile
|-src
| |-main.cpp
| |-main.hpp
|-include
|-dlib (symbolic link)
|-all
| |-source.cpp
|- lots of header files
|-...
Makefile выглядит так:
CC := g++ # This is the main compiler
# CC := clang --analyze # and comment out the linker last line for sanity
SRCDIR := src
LIBDIR := lib
BUILDDIR:= build
TARGET := bin/main
SRCEXT := cpp
SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
OBJECTS := $(patsubst$(SRCDIR)/%,$(BUILDDIR) /%,$(SOURCES:.$(SRCEXT)=.o))
CFLAGS := -g # -Wall
LIB := $(shell find $(LIBDIR) -type f -name *.$(SRCEXT))
INC :=
$(TARGET): $(OBJECTS)
@echo " Linking..."
$(CC) $^ -o $(TARGET) $(LIB)
$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
@mkdir -p $(BUILDDIR)
$(CC) $(CFLAGS) $(INC) -c -o $@ $<
clean:
@echo " Cleaning...";
$(RM) -r $(BUILDDIR) $(TARGET)
.PHONY: clean
Это файл main.cpp:
#include "main.hpp"
int main(){
return 0;
}
И заголовочный файл: main.hpp, пустой, так как я действительно не знаю, что с ним делать.