make

CMake与Make

余生颓废 提交于 2021-01-26 07:19:56
大家都知道,写程序大体步骤为: 1.用编辑器编写源代码,如.c文件。 2.用编译器编译代码生成目标文件,如.o。 3.用链接器连接目标代码生成可执行文件,如.exe。 但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。 对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。 所以流程如下: 来源: oschina 链接: https://my.oschina.net/u/191887/blog/86781

Android移植网卡驱动CS8900

帅比萌擦擦* 提交于 2020-11-11 15:04:03
今天往EZ6410上移植网卡驱动时出现了net_device 中没有open , stop ...... 可一想net_device是网卡驱动最重要的结构体 找来找去的,终于明白了 我使用的驱动文件是根据老版本的内核编的(我用2.6.28时没有出现这样问题) 而我现在所用的内核是2.6.34(36),由于内核的升级,已经将这些常用的主要信息又进行 了再次的封装struct net_device_ops,这个结构体下有我们所熟悉的open,stop方法 来源: oschina 链接: https://my.oschina.net/u/121329/blog/13446

Linux学习入门--make学习总结

巧了我就是萌 提交于 2020-04-07 11:26:49
1. make的作用 可以根据模块的修改情况重新编译链接目标代码,保证目标代码都是由最新的模块组成的。 2. makefile的编写方法 格式: 目标:依赖列表 命令 注意命令左侧是Table制表位 注释 语句前加#表示注释 @避免该行显示,因为make默认是显示执行过程的 \用来接续行比较长的情况,与C语言类似 变量的使用,变量一般用大小字母表示,格式: 变量名 = 字符串;引用方式 $(变量名) ifeq(val1,val2), else, endif 举个例子来说明 gcc_hello_world.c -------------------------------- #include <stdio.h> #include "print.h" int main(void) { print_hello(); return 0; } print.c -------------------------------- #include <stdio.h> #include "print.h" void print_hello(void) { printf("Hello world!\n"); } print.h --------------------------------- #ifndef PRINT_H #define PRINT_H void print_hello(void)

Ubuntu虚拟机下安装运行ORB-SLAM2

帅比萌擦擦* 提交于 2020-03-05 13:49:33
Ubuntu虚拟机下安装运行ORB-SLAM2 由于电脑的两个硬盘都存着数据,没法腾出来一个安装双系统,所以无奈只能在虚拟机上跑SLAM。这两天边看高博的《SLAM十四讲》,边熟悉Ubuntu,遇到了许多问题,但也磕磕绊绊配置运行上了ORB-SLAM2。在此记录下配置过程和出现的一些错误,仅供参考。 1.基本工具 在配置过程中需要cmake、gcc、g++和git工具,这是最基本的工具了,不安装后面要报错的。可以直接在桌面右击打开终端进行安装。git的安装需要一些额外的配置,比如生成SSH密钥,填写你的github账号等,网上有许多这里不再一一赘述。 sudo apt - get install cmake sudo apt - get install git sudo apt - get install gcc g ++ 2.安装Pangolin Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。可以用于3D视觉和3D导航的视觉图,可以输入各种类型的视频、并且可以保留视频和输入数据用于debug。也就是说Pangolin是一个可视化用户界面。 首先要安装一些Pangolin所需要的依赖库: sudo apt - get install libglew - dev sudo apt - get install libboost - dev

[WTL] STLport安装指南

大憨熊 提交于 2020-03-04 10:07:22
STLport安装指南 STLport-4.6 是完全兼容ANSI C++标准的类库。 This distribution contains STLport sources only, no binaries. To use STLport iostreams, you have to build STLport library from sources in "src" directory and link your programs with it. 这个发布包仅仅包括STLport源代码马,不含二进制发布软件包。必须重新编译src目录下的代码才可以使用STLport iostreams类库。 This is major change since pre-4.0 releases, please read the instructions carefully. 这是自4.0版本发布以来的重要变更版本,请仔细的阅读下面的操作指南。 ==== Unpacking and installing STLport ========== 解包和安装STLport 1) Unpack STLport archive to a directory accessible during compilation. NOTE : DO NOT overwrite header files coming

Mqtt服务器搭建

白昼怎懂夜的黑 提交于 2020-02-28 06:12:50
/*--> */ /*--> */ Mqtt服务器搭建 测试环境:CentOS64位 1.安装基础软件 yum install gcc-c++ yum install cmake yum install openssl-devel //mosquitto默认支持openssl 2.下载源码包 wget http://mosquitto.org/files/source/mosquitto-1.4.4.tar.gz wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz --no-check-certificate wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz 3.解压源码包 tar xf c-ares-1.10.0.tar.gz && mv c-ares-1.10.0 /usr/local/src/ tar xf v1.3-chrome37-firefox30 -C /usr/local/src/ tar xf mosquitto-1.4.4.tar.gz -C /usr/local/src/ 4.编译准备 cd /usr/local/src/mosquitto-1.4.4/ vim compiling

20155301 Makefile和MyOD和共享库

自古美人都是妖i 提交于 2020-02-25 12:35:08
20155301 Makefile和MyOD和共享库 Makefile 作用:make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。 我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是: 1.如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。 2.如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。 3.如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。 target... : prerequisites ... command ... ... ------------------------------------------------------------------------------- target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签。 prerequisites就是,要生成那个target所需要的文件或是目标。 command也就是make需要执行的命令。(任意的Shell命令) 步骤: 1.我们可以把这个内容保存在文件为“Makefile”或“makefile”的文件中. 2.然后在该目录下直接输入命令“make”就可以生成执行文件edit

Makefile终极详细说明书

随声附和 提交于 2020-01-22 22:44:02
该篇文章为转载,是对原作者系列文章的总汇加上标注。 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说

Linux编译出现Android can only be built by versions 3.81 and 3.82.

别来无恙 提交于 2020-01-22 21:27:17
意思是之前的make版本过高,需要安装低版本的make。之前在网上搜的安装方法无法解决我遇到的问题,所以我自己的解决办法如下: 1.下载make3.81 去ftp://ftp.gnu.org/gnu/make/ 下载目标版本: make-3.8.1.tar.gz 2.任意目录解压 tar -zxvf make-3.81.tar.gz 3.cd到解压目录下 cd make-3.81 4.进行配置 ./configure 5.编译代码 之前在这个步骤按照网上的办法是直接执行make来编译,但是会提示: 程序 ‘make’ 已包含在下列软件包中: make make-guile 请尝试:sudo apt install <选定的软件包> 查看README,发现是要执行sudo ./make install。 6.安装成功 make -version,显示版本为3.81。 来源: CSDN 作者: 布拉格广场的屋顶 链接: https://blog.csdn.net/qq_35067343/article/details/103769944

Linux内核Makefile文件

怎甘沉沦 提交于 2020-01-18 08:06:46
本文是冷烟花原创,转载请注明出处! https://www.cnblogs.com/jason-lu/p/3728198.html Linux内核Makefile文件(翻译自内核手册) –译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 This document describes the Linux kernel Makefiles 本文档介绍了Linux内核的Makefile === Table of Contents === 目录 === 1 Overview === 1 概述 === 2 Who does what === 2 角色分工 === 3 The kbuild files === 3 内核编译文件 --- 3.1 Goal definitions --- 3.1 目标定义 --- 3.2 Built-in object goals - obj-y --- 3.2 内嵌对象 - obj-y --- 3.3 Loadable module goals - obj-m --- 3.3 可加载模块 - obj-m --- 3.4 Objects which export symbols --- 3.4 导出符号 --- 3.5