如何在不删除.o文件的情况下使用makefile进行编译
How to compile with a makefile without deleting .o files?
我对makefile一点经验都没有,但我设法让自己的工作正常。然而,当我修改一个文件并希望重新编译新版本时,我刚刚注意到我需要删除之前生成的de.o文件来进行新的编译(否则,我被告知什么都做不了)。
是否有任何选项可以添加到makefile中,使其用新文件替换旧的.o(仅当它是旧版本时)?或者,至少,这就是我认为我的解决方案
提前感谢
Eduardo
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*
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
...etc
colamsg.o: colamsg.cpp colamsg.hpp
^target ^dependencies
只要列出了每个目标的所有依赖项,就不必执行任何操作。
Make将注意到对象文件已过期。
相关文章:
- 使用单个makefile编译C和C++
- 使用 g++ 和 Makefile 编译 c++ 时可执行文件非常大
- 如何在Linux中使用MakeFile编译TensorFlow C_API
- Makefile:编译一个llvm程序,作为g++编译的bnfc项目的一部分
- GCC makefile 编译和语法。如何调用 c 编译器以及包含多个路径
- 当我尝试使用 makefile 编译我的 qt 程序时,它不起作用
- 用cmake中的makefile编译项目
- 如何在Windows上使用MakeFile编译不受管理的 *.dll
- makefile:编译SRC和测试目录时出错
- 使用makefile编译C++项目时出现问题
- Mingw makefile 编译错误窗口
- 如何使用 Makefile 编译后运行程序
- 在NITE和OpenNI上使用makefile编译PointViewer
- 多个文件Makefile编译
- 通过 Makefile 编译 2 个文件不起作用
- 如何使用自定义 Makefile 编译 STL C++ for Android
- Makefile编译所有文件,即使更改是在单个c++文件中完成的
- C++与Fortran混合程序的Makefile编译问题
- 无法使用Makefile编译SDL
- C++Makefile编译顺序