makefile 指定编译输出.o文件的路径
时间: 2024-10-11 12:08:14 浏览: 100
makefile 学习笔记
在Makefile中,如果你想要指定编译后的目标(.o)文件存储的位置,你可以使用`$(OBJECTS_DIR)`变量或者直接指定目录路径。通常的做法是在`.o:`规则前添加`VPATH`变量,它告诉Make如何查找源文件。例如:
```makefile
# 设置对象文件保存的默认路径
OBJECTS_DIR = obj
# 或者你可以针对特定的目标指定路径,如:
%.o: %.cpp
$(CC) $(CFLAGS) -c $< -o $(OBJECTS_DIR)/$@
# 如果你想更改某个特定对象文件的路径,可以在该规则下指定
my_custom_file.o: src/my_custom_file.cpp
$(CC) $(CFLAGS) -c $< -o custom_objects_dir/my_custom_file.o
# 使用VPATH指定查找源文件的路径
VPATH = src:custom_objects_dir
# 当然,你也可以通过$(@D)获取当前目标所在的目录,自动存放对象文件
%.o: %.cpp
$(CC) $(CFLAGS) -c $< -o @D/$(*F).o
```
在这个例子中,`.o`文件会被分别放在`obj`目录、`custom_objects_dir`(如果指定了特定路径的话)或者每个源文件所在目录里,取决于`VPATH`的设置。
阅读全文