linux编译

Linux下通过源码编译安装程序

二次信任 提交于 2020-02-01 18:22:59
  本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识。(大神勿喷^_^)   一、程序的组成部分     Linux下程序大都是由以下几部分组成:       二进制文件:也就是可以运行的程序文件       库文件:就是通常我们见到的lib目录下的文件       配置文件:这个不必多说,都知道       帮助文档:通常是我们在linux下用man命令查看的命令的文档   二、linux下程序的存放目录     linux程序的存放目录大致有三个地方:       /etc, /bin, /sbin, /lib :系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上       /usr/bin,/usr/sbin,/usr/lib:操作系统核心功能,可以单独分区        /usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:这个用于安装第三方程序,分别对应了二进制文件、库文件、配置文件、帮助文档的目录     通常来说我们安装程序就安装在 /usr/local目录下   三、编译安装源程序     1、使用如下命令查看当前是否安装了gcc编译器,没有可以先用yum安装gcc gcc --version #查看是否安装gcc  

LINUX下载编译ffmpeg(doubango)

大憨熊 提交于 2020-02-01 01:07:23
下载 http://ffmpeg.org/download.html 解压 tar xf ffmpeg-4.2.2.tar.bz2 cd ffmpeg-4.2.2/ 编译 ffmpeg的编译参数非常多,这里是参考doubango的编译参数。 BUILD_LIBS=${HOME}/build_libs ./configure \ --prefix=${BUILD_LIBS} \ --extra-cflags="-fPIC" \ --extra-cflags="-I${BUILD_LIBS}/include" \ --extra-ldflags="-L${BUILD_LIBS}/lib" \ --bindir="${BUILD_LIBS}/bin" \ --enable-pic --enable-pthreads \ --enable-shared --disable-static \ --disable-network --enable-pthreads \ --disable-ffmpeg --disable-ffplay --disable-ffprobe \ --enable-gpl --enable-nonfree \ --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 \ --disable

Linux 通过源代码编译安装软件包

爷,独闯天下 提交于 2020-01-31 17:35:35
其他安装方式 wget下载。 tar 解压 /configure 自动配置。 --perfix 指定安装位置 make -j2 代表使用2两个逻辑的cpu进行编译,可以在一定程度上加快编译速度 make install 把编译好的程序安装到prefix指定的目录 gmake 方便跨平台编译。 gmake -j2 编译后的东西在build文件 make install 后查看安装文件 来源: https://www.cnblogs.com/Brake/p/12245962.html

LearnOpenGL-第一课:创建窗口

巧了我就是萌 提交于 2020-01-30 07:14:49
创建窗口 在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地从这些操作抽象(Abstract)出去。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。 幸运的是,有一些库已经提供了我们所需的功能,其中一部分是特别针对OpenGL的。这些库节省了我们书写操作系统相关代码的时间,提供给我们一个窗口和上下文用来渲染。最流行的几个库有GLUT,SDL,SFML和GLFW。在教程里我们将使用GLFW。 GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入,这正是我们需要的。本节和下一节的目标是建立GLFW环境,并保证它恰当地创建OpenGL上下文并显示窗口。这篇教程会一步步从获取、编译、链接GLFW库讲起。我们使用的是Microsoft Visual Studio 2015 IDE(操作过程在新版的Visual Studio都是相同的)。如果你用的不是Visual Studio(或者用的是它的旧版本)请不要担心,大多数IDE上的操作都是类似的。 构建GLFW GLFW可以从它官方网站的 下载页 上获取。GLFW已经有针对Visual Studio 2013

gcc编译时对'xxxx'未定义的引用问题

时光怂恿深爱的人放手 提交于 2020-01-29 11:30:25
gcc编译时对’xxxx’未定义的引用问题 gcc编译时对’xxxx’未定义的引用问题 原因 解决办法 gcc 依赖顺序问题 在使用 gcc 编译的时候有时候会碰到这样的问题,编译为 .o (obj) 文件没有问题,但是编译(这一步应该是链接)为可执行文件的时候会出现找不到’xxx’的定义的情况。 本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso 本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso 例如: g++ -o spider -rdynamic -lpthread -levent -lcrypt -ldl bloomfilter.o confparser.o crc32.o dso.o hashs.o md5.o qstring.o sha1.o socket.o spider.o threads.o url.o ... dso.o:在函数‘dso_load(char const*, char const*)’中: dso.cpp:(.text+0x3c):对‘dlopen’未定义的引用 dso.cpp:(.text+0x4c):对‘dlsym’未定义的引用 dso.cpp:(.text+0xb5):对‘dlerror’未定义的引用 dso.cpp:(.text+0x13e):对‘dlclose

LINUX doubango编译详细过程记录

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-29 11:18:11
说明 本文章详细记录了编译doubango的详细过程。 为了保证移植的便利,所有用到的库,都自行编译。 参考文档 https://github.com/DoubangoTelecom/doubango/blob/master/Building_Source_v2_0.md 吾使用的是debango编译。 准备工作 apt update apt install gcc make camke apt install autoconf subversion git wget g++ pkgconfig # libtool libogg-devel nasm 下载编译libtool https://blog.csdn.net/quantum7/article/details/104086313 下载编译libogg https://blog.csdn.net/quantum7/article/details/104086366 下载编译nasm https://blog.csdn.net/quantum7/article/details/104086464 下载编译libsrtp https://blog.csdn.net/quantum7/article/details/104086582 下载编译OpenSSL https://blog.csdn.net/quantum7

Linux内核模块编译

心已入冬 提交于 2020-01-29 10:47:51
1.查看当前版本: uname -r 2.编写内核模块 1 #include<linux/init.h> 2 #include<linux/module.h> 3 #include<linux/kernel.h> 4 MODULE_LICENSE("GPL); 5 MODULE_AUTHOR("xiaomiao"); 6 static int __init hello_init(void) 7 { 8 printk(KERN_ALERT "(init)Hello,World!\n"); 9 return 0; 10 } 11 static void __exit heelo_exit(void) 12 { 13 printk(KERN_ALERT "(exit)Hello,World!\n"); 14 } 15 module_init(hello_init); 16 module_exit(hello_exit); 3.编写Makefile文件 1 ifneq ($(KERNELRELEASE),) 2 obj-m := ModuleHelloWorld.o 3 else 4 KERNLDIR ?= /lib/modules/$(shell uname -r)/build 5 PWD := $(shell pwd) 6 default: 7 $(MAKE) -C $

制作linux内核安装包

别等时光非礼了梦想. 提交于 2020-01-29 00:15:32
实验基于Centos 6.2 升级linux内核 直接在一个有编译环境的设备上,编译升级内核很简单。 make menuconfig 或者 拷贝现有系统的.config文件 修改.config文件 CONFIG_DEBUG_INFO=n (避免编译产生文件过大) make oldconfig make all -j4 make modules_install make install 制作linux内核安装包 有时需要在虚拟机上编译好内核后,安装到另外的设备上,而设备上工具有限,没有编译开发环境等。一种方式是通过nfs挂载,在设备上直接make modules_install,然后make install。 另外一种,就是手动拷贝安装。下面介绍怎么制作一个内核安装包,可以直接在设备上安装。以下以内核3.5.3为例说明。 1、编译 make all -j4 2、准备各种目录及文件 新建文件夹 kernel-3.5.3 export INSTALL_MOD_PATH=kernel-3.5.3 执行make modules_install 模块会安装到文件夹kernel-3.5.3中 拷贝源码目录下scripts中的depmod.sh 到kernel-3.5.3中 拷贝源码目录下arch/x86/boot/bzImage 到kernel-3.5.3中 拷贝源码目录下System

编译linux内核模块

大城市里の小女人 提交于 2020-01-28 16:33:46
本文内容适用于编译运行于本机的内核模块。 开发内核模块往往第一步的编译环境设置最容易出错,需要安装的主要有build-essential, 对应版本的linux-header。 然后就是Makefile的写法 1 obj-m := hello.o2 # 网上很多是自己下载源码,然后用的是3 # KDIR :=/usr/src/kernel-source-2.6.8类似的路径,这样很容易出错,造成4 # 编译出来的内核版本号和实际运行的内核版本号不一致。在insmod时就会得到这5 # 个错误 insmod: error inserting '': -1 Invalid module format6 KDIR :=/lib/modules/$(shell uname -r)/build7 PWD := $(shell pwd)8 default: 9 $(MAKE) -C $(KDIR) M=$(PWD) modules 根据这个Makefile,直接make,就能正确编译。 最准确的,见 The Linux Kernel Module Programming Guide:2.2. Compiling Kernel Modules 其他参考: How to Create, Compile, Load Linux LKM Loadable Kernel Modules Writing

GCC 参数详解

心已入冬 提交于 2020-01-27 08:01:23
转载出处: http://blog.csdn.net/yff1030/article/details/8592077 原文:http://www.cppblog.com/SEMAN/archive/2005/11/30/1440.html [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x language filename   设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后 缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀 名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了 下一个参数的使用。   可以使用的参数吗有下面的这些   `c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a ssembler-with-cpp'.   看到英文,应该可以理解的。   例子用法: