相关疑难解决方法(0)

Makefile,头依赖项

假设我有一个带有规则的makefile

%.o: %.c
 gcc -Wall -Iinclude ...
Run Code Online (Sandbox Code Playgroud)

我想要在头文件更改时重建*.o.无论何时/include更改任何头文件,都必须重建dir中的所有对象,而不是计算出依赖项列表.

我想不出一个改变规则以适应这个的好方法,我愿意接受建议.如果标题列表不必硬编码,则奖励积分

dependencies makefile header-files

90
推荐指数
5
解决办法
10万
查看次数

Makefile 不检查头文件中的更新

我认为我的 makefile 非常好,但后来我尝试仅更新头文件并重新编译我的库,但它没有改变任何内容。

我怎样才能让它工作并重新编译 h 文件中的代码。

我的生成文件:

SHELL = /bin/sh
SOURCE_FILES_DIRS = -I./../frmwrk/ -I./../Utils/
CXX = g++
CXXFLAGS = $(SOURCE_FILES_DIRS) -std=c++17 -rdynamic -fPIC -g -Wall
LDFLAGS = -shared

LIBS_DIR = ../../libs/
LIB_NAME = libIni.so
TARGET  = $(LIBS_DIR)$(LIB_NAME)
SOURCES = $(shell echo *.cpp)
HEADERS = $(shell echo *.h)
OBJECTS = $(SOURCES:.cpp=.o)
LINK_LIBS = -lFrmwrk -lUtils

PREFIX = $(DESTDIR)/usr/local
BINDIR = $(PREFIX)/bin

all: $(TARGET)

$(TARGET): $(OBJECTS) $(HEADERS)
    $(CXX) $(CXXFLAGS) -L$(LIBS_DIR) $(LDFLAGS) -o $(TARGET) $(OBJECTS) $(HEADERS) $(LINK_LIBS)

clean:
    rm -f *.o $(TARGET)/*.so
    rm …
Run Code Online (Sandbox Code Playgroud)

c++ makefile compilation header-files

5
推荐指数
1
解决办法
1265
查看次数

标签 统计

header-files ×2

makefile ×2

c++ ×1

compilation ×1

dependencies ×1