我正在努力理解如何编译一个小型 linux 应用程序 uvccapture。它的来源在这里。我的问题围绕着 Makefile,并满足包含要求。
我需要知道的是我应该在哪里定义变量MATH_LIB
,(如果有的话),什么-ljpeg
意思,以及我需要做什么来满足它们。
我尝试了什么?阅读有关 makefile 的教程和参考资料,并尝试编译和更改选项。结果:普遍混乱!!!我几乎不知道该问什么。也许有人可以让我去。
我已将 jpeglib 和 uvccapture 的源代码放在以下目录中:
~/src/jpeglib
~/src/uvccapture
cd
到目前为止,当我进入~/src/uvccapture
并运行时,我无法克服以下错误make
:
jpeglib.h: No such file or directory
我正在运行最新的 Raspbian 'Wheezy' 的 Raspberry Pi 上进行编译。
UVCCapture 的 Makefile 如下:
CC=gcc
CPP=g++
APP_BINARY=uvccapture
VERSION = 0.4
PREFIX=/usr/local/bin
WARNINGS = -Wall
CFLAGS = -std=gnu99 -O2 -DLINUX -DVERSION=\"$(VERSION)\" $(WARNINGS)
CPPFLAGS = $(CFLAGS)
OBJECTS= uvccapture.o v4l2uvc.o
all: uvccapture
clean:
@echo "Cleaning up directory."
rm -f *.a *.o $(APP_BINARY) core *~ log errlog
install:
install $(APP_BINARY) $(PREFIX)
# Applications:
uvccapture: $(OBJECTS)
$(CC) $(OBJECTS) $(XPM_LIB) $(MATH_LIB) -ljpeg -o $(APP_BINARY)
源文件仅包含 uvccapture.c 和 v412uvc.h。uvccapture.c 的顶部有以下包含行:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <jpeglib.h>
#include <time.h>
#include <linux/videodev.h>
#include "v4l2uvc.h"
任何克服上述错误的帮助将不胜感激!作为奖励,可以编译整个内容。也许更简单的makefile可以做到?例如,我不知道我是否需要下载 MATH_LIB 文件,或者它们是否带有 gcc。
谢谢!