opencv程序在arm上面运行的makefile怎么编写
opencv程序在arm上面运行的makefile如何编写
遇到这样的问题:
1)opencv工程里面有文件:robotmain.cpp anymotion.cpp anymotion.h mpu6050data.cpp mpu6050data.h videodevice.cpp videodevice.h distancetransform.cpp distancetransform.h;
2)最终生成robotmain可执行文件,编译器为arm-linux-g++
3)用到的库为:-lopencv_core -lopencv_highgui -lopencv_legacy -lpthread -lrt
4)直接用指令:arm-linux-g++ videodevice.cpp distancetransform.cpp mpu6050data.cpp anymotion.cpp robotmain.cpp -o robotmain_arm -I /usr/local/opencv_arm/include/opencv -L /usr/local/opencv_arm/lib -lopencv_core -lopencv_highgui -lopencv_legacy -lpthread -lrt 可以生成在ARM上的可执行文件。
5)我写的makefile能生成.o文件,但是不能生成最终的可执行文件。
CXX = arm-linux-g++
LDFLAGS := -L /usr/local/opencv_arm/lib
CXXFLAGS := -I /usr/local/opencv_arm/include/opencv
LIBS := -lopencv_core -lopencv_highgui -lopencv_legacy -lpthread -lrt
objects = robotmain.o anymotion.o mpu6050data.o videodevice.o distancetransform.o
robotmain : $(objects)
$(CXX) $(LDFLAGS) $(CXXFLAGS) -o robotmain $(objects)
robotmain.o: robotmain.cpp anymotion.h mpu6050data.h videodevice.h distancetransform.h
$(CXX) $(LDFLAGS) $(CXXFLAGS) -c robotmain.cpp
anymotion.o : anymotion.cpp anymotion.h
$(CXX) $(LDFLAGS) $(CXXFLAGS) -c anymotion.cpp
mpu6050data.o : mpu6050data.cpp mpu6050data.h
videodevice.o : videodevice.cpp videodevice.h
distancetransform.o : distancetransform.cpp distancetransform.h
.PHONY : clean
clean:
rm -rf robotmain $(objects)
求各位大神指导啊!很急的!
------解决思路----------------------
这样写,当然不能生成了。
加上我下面的试一试
STRIP = @echo " strip $@"; $(CROSS)strip
APP_TARGET = robotmain
all: $(APP_TARGET)
$(STRIP) $(APP_TARGET)
$(APP_TARGET): $(objects)
------解决思路----------------------
把你链接库的指令写到makefile里面,在linux命令行里面直接用敲make all
------解决思路----------------------
Google 跟我一起写makefile 看一下
遇到这样的问题:
1)opencv工程里面有文件:robotmain.cpp anymotion.cpp anymotion.h mpu6050data.cpp mpu6050data.h videodevice.cpp videodevice.h distancetransform.cpp distancetransform.h;
2)最终生成robotmain可执行文件,编译器为arm-linux-g++
3)用到的库为:-lopencv_core -lopencv_highgui -lopencv_legacy -lpthread -lrt
4)直接用指令:arm-linux-g++ videodevice.cpp distancetransform.cpp mpu6050data.cpp anymotion.cpp robotmain.cpp -o robotmain_arm -I /usr/local/opencv_arm/include/opencv -L /usr/local/opencv_arm/lib -lopencv_core -lopencv_highgui -lopencv_legacy -lpthread -lrt 可以生成在ARM上的可执行文件。
5)我写的makefile能生成.o文件,但是不能生成最终的可执行文件。
CXX = arm-linux-g++
LDFLAGS := -L /usr/local/opencv_arm/lib
CXXFLAGS := -I /usr/local/opencv_arm/include/opencv
LIBS := -lopencv_core -lopencv_highgui -lopencv_legacy -lpthread -lrt
objects = robotmain.o anymotion.o mpu6050data.o videodevice.o distancetransform.o
robotmain : $(objects)
$(CXX) $(LDFLAGS) $(CXXFLAGS) -o robotmain $(objects)
robotmain.o: robotmain.cpp anymotion.h mpu6050data.h videodevice.h distancetransform.h
$(CXX) $(LDFLAGS) $(CXXFLAGS) -c robotmain.cpp
anymotion.o : anymotion.cpp anymotion.h
$(CXX) $(LDFLAGS) $(CXXFLAGS) -c anymotion.cpp
mpu6050data.o : mpu6050data.cpp mpu6050data.h
videodevice.o : videodevice.cpp videodevice.h
distancetransform.o : distancetransform.cpp distancetransform.h
.PHONY : clean
clean:
rm -rf robotmain $(objects)
求各位大神指导啊!很急的!
------解决思路----------------------
这样写,当然不能生成了。
加上我下面的试一试
STRIP = @echo " strip $@"; $(CROSS)strip
APP_TARGET = robotmain
all: $(APP_TARGET)
$(STRIP) $(APP_TARGET)
$(APP_TARGET): $(objects)
------解决思路----------------------
把你链接库的指令写到makefile里面,在linux命令行里面直接用敲make all
------解决思路----------------------
Google 跟我一起写makefile 看一下