【发布时间】:2012-01-08 23:19:58
【问题描述】:
我对手工制作的 make 文件比较陌生。我已经整理了一个用于构建库的基本 make 文件。我想将所有临时 .o 文件保存在构建目录中,并将构建的可执行文件存储在 bin 目录中。
我的目录结构如下:
root
src/
include/
build/
bin/
Makefile
这就是我的 make 文件的样子:
SHLIB = pg_extlib
SRC = src/file1.c \
src/file2.c
OBJS = build/file1.o \
build/file2.o
debug_build:
gcc -g -fPIC -c $(SRC) -I`pg_config --includedir` -I`pg_config --includedir-server` -I/some/required/path/include -Iinclude
gcc -shared -o bin/$(SHLIB).so $(OBJS) -lm -lpq -lmylib_core
clean:
rm -f $(SHLIB) $(OBJS)
.o 文件正确放置在构建文件夹中,但它们也出现在根文件夹(Makefile 所在的位置)中。我该如何解决这个问题?
【问题讨论】:
-
虽然我不知道您来自哪里,但请在手工制作您的 makefile 之前尝试一下
automake。它以可移植和用户可配置的方式支持这种树外构建。