【发布时间】:2012-01-29 02:03:23
【问题描述】:
我尝试了无数次尝试将我的.o 文件移动到我的obj 文件夹,但无论我做什么,它根本不起作用。
从提供的makefile来看,将.o文件移动到指定文件夹的最佳方法是什么?
BIN = bin/
OBJ = obj/
TARGET = opengl_03
DEPS = main.o displayinit.o initializer.o algorithms.o matrix3f.o window.o vertex3.o
CC = g++
CFLAGS = -g
LIBS = -lglut -lGLEW -lGL
INCLUDEPATH = -L/usr/include/ -L/usr/lib/ -L/usr/lib/x86_64-linux-gnu/
$(TARGET) : $(DEPS)
$(CC) $(CFLAGS) -o $(BIN)$(TARGET) $(DEPS) $(LIBS) $(INCLUDEPATH)
displayinit.o : displayinit.cpp displayinit.h
$(CC) $(LIBS) $(INCLUDEPATH) -c displayinit.cpp && mv displayinit.o $(OBJ)displayinit.o
initializer.o : initializer.cpp initializer.h
$(CC) $(LIBS) $(INCLUDEPATH) -c initializer.cpp $(OBJ)
algorithms.o : algorithms.cpp algorithms.h
$(CC) -c algorithms.cpp $(OBJ)
matrix3f.o : matrix3f.cpp matrix3f.h
$(CC) $(LIBS) $(INCLUDEPATH) -c matrix3f.cpp $(OBJ)
vertex3.o : vertex3.cpp vertex3.h
$(CC) $(LIBS) $(INCLUDEPATH) -c vertex3.cpp $(OBJ)
window.o : window.cpp window.h
$(CC) $(LIBS) $(INCLUDEPATH) -c window.cpp $(OBJ)
main.o : main.cpp
$(CC) $(LIBS) $(INCLUDEPATH) -c main.cpp $(OBJ)
【问题讨论】:
-
在第一个目标中添加
mv *.o obj/作为最后一行不起作用吗? -
是的!谢谢你。将其发布为答案,我会接受你。
-
为什么不从一开始就将文件构建到
obj/目录中? -
另外,你的 makefile 有 90% 是冗余的。您是否对如何使其更易于管理感兴趣?
-
@Kos 是的,当然。我对makefile很陌生。谢谢。
标签: c++ object compilation makefile