我很难理解如何编译一个小型的linux应用程序,uvccapture。 Its source is here。我的问题围绕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。
谢谢!
答案 0 :(得分:3)
-ljpeg
表示链接到名为libjpeg.a的库。由于您还没有头文件,我猜您没有在您的系统上安装此库。答案是找到该库并安装它。