dllib 라이브러리를 내 C++ 프로젝트에서 작동시키고 내 스크립트의 헤더 파일에있는 내 Makefile 및 #include < ...과 관련된 작업을 모릅니다. 헤더 파일과 스크립트를 src 디렉토리에 두었습니다. 심볼릭 링크가 dlib 라이브러리에 만들어졌으며 링크는 include 디렉토리에 있습니다 (아래 폴더 구조 참조). dlib 웹 사이트에C++ 프로젝트에 dlib 포함
는 말한다 :
당신은 당신의 컴파일러의에 dlib 폴더 자체를 추가해서는 안 대신 당신이에 dlib 폴더가 들어있는 폴더를 추가해야합니다 경로를
을 포함 검색 경로를 포함 #include 형식의 include 문을 사용하십시오. 이렇게하면 모든 것이 올바르게 구축됩니다.
필자가 원하는 것은 dlib를 헤더 파일에 포함시키고 dlib의 모든 기능을 사용할 수 있도록 컴파일하는 것입니다. 이걸로 나를 도울 수 있니?
폴더 구조는 다음과 같다 :
projectDir
|-Makefile
|-src
| |-main.cpp
| |-main.hpp
|-include
|-dlib (symbolic link)
|-all
| |-source.cpp
|- lots of header files
|-...
makefile은 다음과 같습니다
#include "main.hpp"
int main(){
return 0;
}
그리고 헤더 파일 :이 MAIN.CPP 파일입니다
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 [email protected] $<
clean:
@echo " Cleaning...";
$(RM) -r $(BUILDDIR) $(TARGET)
.PHONY: clean
: main.hpp는 비어 있습니다. 왜냐하면 저는 정말로 그걸로 무엇을해야할지 모르겠습니다.
은 내가 INC 라인을 변경하고 댓글을 달았 (내가 틀리지 않는 한,
SRCEXT
라이브러리 확장을 포함 할 수 없습니다) 그것은 LIB에서 소스 파일을 찾습니다LIB 라인. #LIB \t \t : 나는 내 헤더 파일에 다음을 추가 = -Iinclude/dlib/ 또한 : = $ INC \t \t (. 쉘은 $ (LIBDIR) 타입 F -name * $ (SRCEXT를) 찾을 수) #include <../include/dlib/ geometry.h> 연결 단계에서 문제가 무엇인지 알 수 없습니까? ("No such file or directory"라고 말하지 않음) – user3346727
내 편집을 확인하고 결과를 알려주십시오. 컴파일하고 링크 문제가 있으면 게시하십시오. –
네, 고마워요! Ther은 여전히 해결 된 유일한 문제였습니다. 문제는 dlib 폴더가 포함되었다는 것입니다. 이것은 (적어도 dlib의 경우) 잘못되어 오류가 발생합니다. 지금 내가 한 일은 다음과 같습니다. INC : = -include/dlib 및 #include. 이 지금 작동합니다. 여러 번 감사드립니다! –
user3346727