我在文件夹'/mnt/droplet/include'中有所需的头文件。我在创建所需的目标文件时使用了-I选项(-I/mnt/droplet/include)。上述文件夹包含头文件“stdlib. h”,但编译器试图包含位于'/usr/include/stdlib. h'的头文件。
如何确保包含目录“/mnt/droplet/include/”中的头文件。
请注意,我希望以相同的方式包含更多这样的头文件,直接在usr/include中替换它们不是一个选项。
相同的make文件如下所示
LIBS := -L/mnt/droplet/gcc-7.1/lib64/ -L/mnt/droplet/local/lib/v1.2/
CXX := /mnt/droplet/gcc-7.1/bin/g++ -std=c++1z
INCS := -I/mnt/droplet/include -I/mnt/droplet/local/include/v1.2/
SRCS := main.cpp
CXXFLAGS := -Og -g -ggdb3
OUT_EXE := binary
SRCS_EXE := ${SRCS}
OBJS := $(addsuffix .o,$(basename ${SRCS}))
OBJS_EXE := $(addsuffix .o,$(basename ${SRCS_EXE}))
${OUT_EXE}: ${OBJS_EXE}
g++ -g -o $@ ${OBJS_EXE} ${LIBS}
%.o : %.cpp
${CXX} -v -c ${CXXFLAGS} ${MAIN_DEF} ${INCS} $< -o $@
clean:
rm -f core ${OBJS_EXE} ${OUT_EXE}
1条答案
按热度按时间vaqhlq811#
检查你的编译器是否可以禁用默认包含的头文件,如果你想改变搜索头文件的位置,那么在你的#include语句中使用双引号。例如;
include<stdlib.h>和#include“stdlib. h”有两种不同的含义。
第一个将搜索您的系统包含目录,第二个将搜索相对于源文件目录的目录。
希望能帮上忙。