已解決:我不完全確定爲什麼以及如何,但是當我從-I〜/ dlib-18.18更改爲-I ../ dlib-18.18時,它就可以工作。g ++無法識別包含目錄
我想編寫一個使用dlib庫編譯程序的makefile。我已經下載並安裝在根目錄中的庫。
.cpp文件的頭如下:
#include "dlib/optimization.h"
#include <iostream>
DLIB文件夾包括在DLIB-18.18和optimization.h確實DLIB文件夾內。
下面是我的makefile(或其中的一部分)。我已將相關目錄包含在CFLAGS中。然而,在編譯過程中,G ++說,它無法找到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-18.18'的'dlib'子目錄中,還是你的意思是'#include「dlib-18.18/optimization.h」'? –