我很努力地理解如何編譯一個小型的Linux應用程序uvccapture。 Its source is here。我的問題圍繞着Makefile,並滿足包含需求。編譯C++,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。
是的makefile UVCCapture如下:
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。
謝謝!
通常在debian系統上,你需要做的就是:'sudo apt-get install libjpeg-dev' – teppic
謝謝你的工作!下一個錯誤是'linux/videodev.h:沒有這樣的文件或目錄'。我運行'sudo apt-get install libv4l-dev',但是錯誤仍然存在,如果我嘗試安裝libv4l2-dev它說它找不到這樣的包 – Jodes
當你需要一些信息時,你會得到更多的搜索結果gcc文檔(-l是一個gcc標誌)比在makefile文檔中搜索。 –