解决:我不完全确定原因和方法,但当我从-I~ / dlib-18.18变为-I ../ dlib-18.18时,它就可以了。
我试图编写一个使用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 $@
答案 0 :(得分:0)
您的模式错误:.c
表示规则是关于编译.cpp
文件(不是 .cpp
文件)。
因此,此规则不适用,GNU Make会回退到它自己的一组用于编译C ++代码的默认规则。
请尝试相反(假设您与dlib保持一致,并且您正在使用{CES文件的CXX = g++
CXXFLAGS = -I. -I/usr/include/ -I~/dlib-18.18
FLAGS = -g -O -Wall -Wextra -Werror -Wfatal-errors -std=c++11 -pedantic
# To get *any* .o file, compile its .cpp file with the following rule.
%.o: %.cpp
$(CXX) $(FLAGS) $(CXXFLAGS) -c $<
扩展名):
make -B
现在运行-I~/dlib-18.18
并在g ++命令行上查看<?php
foreach (glob("posts/*.php") as $filename)
{
include $filename;
}
?>
选项的编译器输出。