C++ 如何使用makefile编译而不删除.o文件?
我对makefiles一点经验都没有,但我还是设法让我的工作正常了。 但是,当我修改一个文件并希望重新编译新版本时,我注意到我需要删除以前生成的de.o文件以进行新编译(否则,我被告知什么也做不了) 是否有任何选项可以添加到makefile中,使其用新的.o替换旧的.o(仅当它是旧版本时)?或者,至少,我认为我的解决方案是这样的 提前感谢, 爱德华多 这是我的Makefile,以防你需要C++ 如何使用makefile编译而不删除.o文件?,c++,linux,unix,makefile,C++,Linux,Unix,Makefile,我对makefiles一点经验都没有,但我还是设法让我的工作正常了。 但是,当我修改一个文件并希望重新编译新版本时,我注意到我需要删除以前生成的de.o文件以进行新编译(否则,我被告知什么也做不了) 是否有任何选项可以添加到makefile中,使其用新的.o替换旧的.o(仅当它是旧版本时)?或者,至少,我认为我的解决方案是这样的 提前感谢, 爱德华多 这是我的Makefile,以防你需要 todo: Sensor Control Lista #Ficheros de los que depen
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
的更多信息;尝试make-p
了解内置规则。看,这看起来应该行得通。我还没能做到这一点,但这肯定是我的错!但这正是你所做的!!!这是比您选择的答案更好的答案。请检查文件的日期,可能是系统中使用错误的时钟生成了.o
-s,或者您的FS没有更新修改时间…使用WIndows不起作用,但使用Linux可以(无需添加依赖项)。
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
...etc
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
...etc