0

我正在努力理解如何编译一个小型 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。

谢谢!

4

1 回答 1

3

-ljpeg表示与名为 libjpeg.a 的库链接。由于您也没有头文件,我猜您的系统上没有安装此库。答案是找到那个库并安装它。

于 2013-03-28T22:16:21.210 回答