0

小さな Linux アプリ uvccapture をコンパイルする方法を理解するのに苦労しています。そのソースはこちらです。私の問題は Makefile を中心に展開し、インクルード要件を満たしています。

私が知る必要があるのはMATH_LIB、(存在する場合) などの変数をどこで定義する必要があるか、およびその-ljpeg意味と、それらを満たすために何をする必要があるかです。

私は何を試しましたか?makefile に関するチュートリアルとリファレンスを読み、コンパイルとオプションの変更を試みました。結果: 一般的な混乱!!! 私は何を尋ねるべきかほとんどわかりません。おそらく誰かが私を行かせることができたでしょう。

jpeglib と uvccapture のソースを次のディレクトリに置きました。

~/src/jpeglib
~/src/uvccapture

これまでのところ、実行して実行cdすると、次のエラーを回避できません。~/src/uvccapturemake

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"

上記のエラーを克服するための助けをいただければ幸いです。おまけとして、全体をコンパイルします。おそらく、より単純なメイクファイルでできるでしょうか?たとえば、MATH_LIB ファイルをダウンロードする必要があるのか​​、それとも gcc に付属しているかどうかはわかりません。

ありがとう!

4

1 に答える 1

3

-ljpeglibjpeg.a というライブラリとリンクすることを意味します。ヘッダーファイルも持っていないので、システムにこのライブラリがインストールされていないと思います。答えは、そのライブラリを見つけてインストールすることです。

于 2013-03-28T22:16:21.210 に答える