【发布时间】:2015-12-07 15:39:26
【问题描述】:
我完全没有使用 makefile 的经验,但我设法让我的工作。 但是,当我修改文件并希望再次编译新版本时,我刚刚注意到我需要删除之前生成的 de .o 文件才能进行新编译(否则,我被告知无能为力) .
是否有任何选项可以添加到 makefile 中以使其用新的 .o 替换旧的 .o(仅当它是旧版本时)?或者,至少,我认为我的解决方案可能是这样。
提前致谢,
爱德华多
PD:这里有我的 Makefile,以备不时之需。
todo: Sensor Control Lista
#Ficheros de los que depende
Sensor: Sensor.o semaforo.o memocomp.o colamsg.o
#Cómo crea esos ficheros
g++ Sensor.o semaforo.o memocomp.o colamsg.o -o Sensor -lrt -lpthread
Control: Control.o semaforo.o memocomp.o colamsg.o
g++ Control.o semaforo.o memocomp.o colamsg.o -o Control -lrt -lpthread
Lista: Lista.o semaforo.o memocomp.o colamsg.o
g++ Lista.o semaforo.o memocomp.o colamsg.o -o Lista -lrt -lpthread
#Compilación de cada uno de esos ficheros
Sensor.o: Sensor.cpp semaforo.hpp memocomp.hpp colamsg.hpp
g++ -c Sensor.cpp
Control.o: Control.cpp semaforo.hpp memocomp.hpp colamsg.hpp
g++ -c Control.cpp
Lista.o: Lista.cpp semaforo.hpp memocomp.hpp colamsg.hpp
g++ -c Lista.cpp
semaforo.o: semaforo.cpp semaforo.hpp
g++ -c semaforo.cpp
memocomp.o: memocomp.cpp memocomp.hpp
g++ -c memocomp.cpp
colamsg.o: colamsg.cpp colamsg.hpp
g++ -c colamsg.cpp
#Elimina los ficheros creados previamente por el usuario ****
clean:
rm /dev/shm/sem.1207*
rm /dev/shm/1207*
rm /dev/mqueue/1207*
【问题讨论】:
-
阅读更多关于
make的信息;尝试make -p了解内置规则。看this -
这看起来应该可以了。