如何使用以下命令创建一个简单的Makefile?
g++ -Wall -I/usr/include/opencv -I/usr/include/opencv2 -L/usr/lib/ -g -o exe sourc1.cpp sourc2.cpp sourc3.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lv4l1 -lv4l2 -lv4lconvert -pthread
Run Code Online (Sandbox Code Playgroud)
我引用了这个链接,但我感到困惑.
也许是这样的
# your Makefile
#### variables
RM= rm -vf
CXX= g++
CXXFLAGS= -Wall -g
CPPFLAGS= -I/usr/include/opencv -I/usr/include/opencv2
LDLIBS= -lopencv_core -lopencv_imgproc -lopencv_highgui \
-lopencv_ml -lopencv_video -lopencv_features2d \
-lopencv_calib3d -lopencv_objdetect -lopencv_contrib \
-lopencv_legacy -lv4l1 -lv4l2 -lv4lconvert
SOURCEFILES= sourc1.cpp sourc2.cpp sourc3.cpp
OBJECTFILES= $(patsubst %.cpp,%.o,$(SOURCEFILES))
PROGNAME= yourexe
### rules
.PHONY: all clean
all: $(PROGNAME)
$(PROGNAME): $(OBJECTFILES)
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@
clean:
$(RM) $(OBJECTFILES) $(PROGNAME)
Run Code Online (Sandbox Code Playgroud)
随意适应.(您可能有头文件,您需要将对象文件的依赖项添加到源文件和头文件).如果知道opencv,也许可以使用pkg-config.用制表符替换规则中的初始许多空格.仔细阅读GNU make文档.
如果你有sourc2.cpp,如果你有两个头文件header1.hh和header2.hh它们#include的-d sourc2.cpp你需要添加依赖关系规则:
sourc2.o: source2.cpp header1.hh header2.hh
Run Code Online (Sandbox Code Playgroud)
并且有一种方法(通过传递参数等-M或-MD以gcc通合适的规则)来获得自动生成这样的依赖关系,请参阅了这个问题.
您可能希望使用重制来调试您的Makefile-s(例如as remake -x).运行make -p以了解已知的规则make
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |