gpt4 book ai didi

c++ - makefile 未从 -I 包含路径中找到头文件

转载 作者:行者123 更新时间:2023-11-28 05:37:22 25 4
gpt4 key购买 nike

我有下面给出的 makefile。当我执行 make 时,出现以下错误

cc  -c -o timing.o timing.c
test_c.c:5:17: fatal error: test.h: No such file or directory
#include "test.h"

我已经手动验证 test.h 存在于 ../include 路径中。我不确定为什么找不到头文件。如果有人可以提供帮助,那就太好了。而且我希望 g++ 而不是 cc

# Makefile template for shared library

CXX = g++ # C++ compiler
CXXFLAGS = -fPIC -Wall -Wextra -O2 -g -I../include #CXX flags
LDFLAGS = -lboost_system -shared # linking flags

RM = rm -f # rm command

TARGET_LIB = libtest.a # target lib


C_SRCS := test_a.c test_b.c
CPP_SRCS := test_c.cpp test_d.cpp
OBJS := $(C_SRCS:.c=.o) $(CPP_SRCS:.cpp=.o)

.PHONY: all

all: ${TARGET_LIB}

$(TARGET_LIB): $(OBJS)
$(CXX) $(CXXFLAGS) ${LDFLAGS} -o $@ $^


.PHONY: clean
clean:
-${RM} ${TARGET_LIB} ${OBJS}

~

最佳答案

您还没有编写从 timing.c 构建 timing.o 的规则,因此 Make 使用默认规则。

但是该规则使用CFLAGS,而不是CXXFLAGSCXXFLAGS 变量出现在从 C++ 源构建目标文件的规则中。

所以修改 CFLAGS 而不是 CXXFLAGS,它应该可以工作。

关于c++ - makefile 未从 -I 包含路径中找到头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37934417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com