繁体   English   中英

如何使用 Makefile 生成来自不同目录的头文件的依赖关系?

[英]How to generate dependencies with header files from different directories using a Makefile?

我正在尝试将 ASIO 库用于网络项目。 我的项目和 ASIO 头文件位于不同的目录中。 我的 main.cpp 的编译(除了包括asio.hppiostream什么都不做)工作得很好,但是make Depend命令产生一个错误,说asio.hpp没有找到。 我该如何解决这个问题?

CC = g++
ASIO = -I /Users/user1/Desktop/SDK/asio-1.18.0/include
CFLAGS = -Wall -g -std=c++11 ${ASIO}

SRCS = main.cpp
#SRCS = ${wildcard *.cpp}
OBJS = ${SRCS:.cpp=.o}
INCLS = ${SRCS:.cpp= main.h}

a.out: $(OBJS)
    $(CC) $(CFLAGS) $(OBJS)

$(OBJS):
    $(CC) $(CFLAGS) -c $*.cpp

depend: Makefile.dep
    $(CC) -MM $(SRCS) > Makefile.dep

Makefile.dep:
    touch Makefile.dep

clean:
    rm -f $(OBJS) a.out core a.exe

include Makefile.dep

这并不神秘:描述在哪里可以找到标题的选项在这里:

ASIO = -I /Users/user1/Desktop/SDK/asio-1.18.0/include

构建依赖项的规则在这里:

depend: Makefile.dep
        $(CC) -MM $(SRCS) > Makefile.dep

注意到有什么遗漏了吗? 该命令中不存在用于查找标题的选项。 将其更改为:

depend: Makefile.dep
        $(CC) $(ASIO) -MM $(SRCS) > Makefile.dep

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM