Makefile如何指定包含目录

问题描述 投票:0回答:1

我正在尝试为以下程序编写一个make文件

我的文件/文件夹结构如下

文件夹/文件结构./demo/utilities.c./demo/utilities.h./demo/makefile./include/GeographicLib/UTMUPS.h./include/GeographicLib/Constant.h./include/GeographicLib/xxxxxxx

在utilities.h文件中]

#include <GeographicLib/UTMUPS.h>

在文件UTMUPS.h中

#include <GeographicLib/Constant.h>

在生成文件中

# preprocessor
PREPROC_FLAGS += -DEIGEN_DONT_ALIGN_STATICALLY
INC_XTRA_DIR = ../include
CC=g++
CPPFLAGS= $(PREPROC_FLAGS)
CFLAGS=-O2 -g -Wall -W -I$(INC_XTRA_DIR)
CXXFLAGS=-O2 -g -Wall -W -fpic -std=c++11 

# short hand
OBJDIR=obj
Utilities_h = utilities.h GeographicLib/UTMUPS.hpp

utilities.o: utilities.c  $(Utilities_h) 
    $(CC) $(CPPFLAGS) $(CFLAGS)  -c $< -o $@

all: $(FINAL_TARGET)

$(FINAL_TARGET): $(OBJ)
    $(CC) -g -o $@ $^ $(LDFLAGS)
ifneq ($(wildcard ../databases/.),)
    cp $@ ../
endif

TargetList = $(FINAL_TARGET) 

clean:
    rm -f $(TargetList) *.o *~
    echo Clean done.

我想问的问题是

  1. [当我编译以下项目时,它说找不到“ #include'GeographicLib / UTMUPS.h'”。在公用程序中。h。在这种情况下,命名应该是什么。我的想法是,通过添加-I $(INC_XTRA_DIR)或../include ...,它应该搜索GeographicLib / UTMUPS.h
  2. 关于UTMUPS.h所依赖的文件(在本例中为Constant.h),应该是什么地址
  3. 感谢

我正在尝试为以下程序编写一个生成文件,我的文件/文件夹结构如下所示。文件夹/文件结构./demo/utilities.c ./demo/utilities.h ./demo/makefile ...

c++ c makefile
1个回答
0
投票

相对路径是从$(CC)命令运行的目录(通常与运行make时所在的目录相同,而不是从源文件的角度来看的目录)相对的。

© www.soinside.com 2019 - 2024. All rights reserved.