编译c++, Makefile基础知识:变量,包括库
Compiling c++, Makefile basics: variables, including libraries
我正在努力理解如何编译一个小的linux应用程序,uvccapture。它的源头在这里。我的问题围绕着Makefile,以及满足include的要求。
我需要知道的是我应该在哪里定义像MATH_LIB
这样的变量,(如果有的话),-ljpeg
意味着什么,以及我需要做些什么来满足它们。
我试过什么了?阅读有关makefiles的教程和参考资料,并尝试编译和更改选项。结果是:普遍的困惑!!我都不知道该问什么了。也许有人能让我振作起来。
我把jpeglib和uvccapture的源代码放在以下目录中:
~/src/jpeglib
~/src/uvccapture
到目前为止,当我cd
进入~/src/uvccapture
并运行make
时,我无法通过以下错误:
jpeglib.h: No such file or directory
我正在树莓派上编译运行最新的Raspbian 'Wheezy'。
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)
源文件只包含uvcapture .c和v412uvc.h。uvcapture .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一起提供。
谢谢!
-ljpeg
表示链接到libjpeg.a库。由于您也没有头文件,我猜您的系统上没有安装这个库。答案是找到这个库并安装它。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 如何避免在仅标头库中C++类/变量重定义
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 包括没有完整路径的我的库
- 如何在 android ndk 上链接 C 和 C++ 代码,以及 C 和 C++ 运行时库(包括 STL)?
- 从 exe 和 dll 访问静态库中的 extern 变量
- G 也抱怨不确定的参考文献,即使包括库
- 强制g++指示何时不包括库
- 并行化具有大量全局变量的库
- C++/Qt:在C++和Qt GUI之间传递变量,无需C++部分(包括Qt库)
- 类作为cli c++中全局非常量变量的库
- 包括库C++的问题
- geany:C++包括库和头
- 后期绑定到具有"extern"定义变量的库
- 我需要添加什么到一个项目,包括库
- C++:包括库,多个定义(ARPACK++)
- 编译c++, Makefile基础知识:变量,包括库
- 在构建新库时包括库中的头文件
- 自定义库在应用程序中,我必须包括库依赖头两次