linux下c++ makefile编写-错误笔记

c++ 下的makefile很久之前有写过,但是今天凭记忆写了一个,居然还写错了,而且还浪费了半小时去找原因。所以也写一个错误笔记来谨以记住。

文件树如下:
.
├── camera.cpp
├── camera.h
├── ffmpeg_encoder.cpp
├── ffmpeg_encoder.h
├── main.cpp
├── udp_socket.cpp
└── udp_socket.h

Makefile如下:

CC := gcc
CXX := g++


Target_Object := main

INCLUDE_PATH :=-I/usr/local/include -I/usr/local/ffmpeg/include
LIBS_PATH :=-L/usr/local/lib -L/usr/local/ffmpeg/lib
LIBS := -lraspicam -lavcodec -lavformat -lavutil -lswscale

All:main.o camera.o ffmpeg_encoder.o udp_socket.o
	$(CXX) $(LIBS_PATH) $(LIBS)  main.o camera.o ffmpeg_encoder.o udp_socket.o -o $(Target_Object)
main.o:main.cpp
	$(CXX) -c $(INCLUDE_PATH)  main.cpp -o main.o
camera.o:camera.h camera.cpp
	$(CXX) -c $(INCLUDE_PATH)  camera.cpp -o camera.o
ffmpeg_encoder.o:ffmpeg_encoder.h ffmpeg_encoder.cpp
	$(CXX) -c $(INCLUDE_PATH)  ffmpeg_encoder.cpp -o ffmpeg_encoder.o
udp_socket.o:udp_socket.h udp_socket.cpp
	$(CXX) -c $(INCLUDE_PATH)  udp_socket.cpp -o udp_socket.o
clean:
	rm -rf ./*.o  $(Target_Object)

错误之处:
将:

All:main.o camera.o ffmpeg_encoder.o udp_socket.o
	$(CXX) $(LIBS_PATH) $(LIBS)  main.o camera.o ffmpeg_encoder.o udp_socket.o -o $(Target_Object)

错写为:

All:main.o camera.o ffmpeg_encoder.o udp_socket.o
	$(CXX) $(LIBS_PATH) $(LIBS)  main.o -o $(Target_Object)
分享到:更多 ()

相关推荐

    暂无内容!