《Linux设备驱动》 -- 也就是我们所说的LDD3了; 适合一定基础的人阅读,深入学习Linux不可或缺的知识; 《UNIX环境高级编程》 这本书并不是面对linux内核的书,但是我是从最基础看这本书逐步入门的...; 《Linux内核完全剖析》 本书对早期Linux内核(v0.12)全部代码文件进行了详细、全面的注释和说明,旨在帮助读者用较短的时间对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux...虽然选择的版本较低,但该内核已能够正常编译运行,并且其中已包括了Linux工作原理的精髓。...《Linux那些事》 由复旦一群大神所写,团队为fudan_adc,主要写了我是xxx系列,本人比较喜欢对USB 部分的描述,不得不说大神就是大神。...《Linux设备驱动开发详解》 由华清远见出身的大神所写,宋宝华大神所写,华清远见出来的技术杠杠的。 《深入理解计算机操作系统》 当然啦,不得不说大学学过的操作系统啊!!!!
什么是gcc gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。...2. gcc的特点 gcc是一个可移植的编译器,支持多种硬件平台。例如ARM、X86等等。 gcc不仅是个本地编译器,它还能跨平台交叉编译。...所谓的本地编译器,是指编译出来的程序只能够在本地环境进行运行。而gcc编译出来的程序能够在其他平台进行运行。例如嵌入式程序可在x86上编译,然后在arm上运行。...编译阶段,gcc调用不同语言的编译器,例如c语言调用编译器ccl。gcc实际上是个工具链,在编译程序的过程中调用不同的工具。汇编阶段,gcc调用汇编器进行汇编。...下面这行命令将我们的hello.o打包成静态库libhello.a: ar rcs libhello.a hello.o ar是gun归档工具,rcs表示replace and create,如果
常见工具安装,包括: 软件 备注 m4 autoconf依赖 autoconf autoconf依赖 automake autoconf依赖 libtools autoconf依赖 gmp gcc安装依赖
虽然与W.Richard Stevens TCP/IP详解 有一定的差距,但仍不失为下一代IPv6网络的参考工具书,值得收藏学习 -----------------------------------...本书是世面上极少见的讲述内部网关路由技术的经典书籍,内容极为丰富。对于想清楚的了解内部网关协议的工作原理以及想探究网络通信事物的本质的人来说是一本不可或缺的好书。...网络体系结构:linux内核中网络协议的设计与实现》 ?...Protocols in the Linux Kernel 书名: Linux网络体系结构 说明:翻译的很不好,建议看原版,可以下电子版。...一本在kernel实现网络功能的基础书籍,最好还是看英文版的,翻译的实在太烂了。有条件的还是看原版吧,没办法啊,中国的此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。
注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效),这里我们提供了两种交叉编译工具链,分别是buildroot构建生成的...1.设置 yocto 交叉编译工具链(不推荐) 交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。...=arm-ostl-linux-gnueabi- 2.测试交叉编译工具链 2.1 测试环境变量: book@100ask:~$ echo $ARCH arm book@100ask:~$ echo $...–v 3.设置 buildroot 交叉编译工具链(默认使用) 交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。.../bin book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf- 4.测试交叉编译工具链 4.1 测试环境变量
编译到可执行程序 编译的整体过程分为四步:开始是C语言代码(以C语言为例),结果是exe文件(可执行程序); 第一步:预处理,将源代码中的头文件,宏替换为库中的代码,并取消注释; 第二步:编译,将...在Linux中:.so(动态库) .a(静态库) 在Windows中:.dill(动态库) .lib(静态库) 云服务器默认没有装C/C++静态标准库 ,我们可以使用yum按照下面的指令安装...; sudo yum install libstdc++-static Makefile自动构建化工具 我们可以把makefile理解为指令的集合;makefile文件里有我们写好的很多指令,然后我们对...makefile进行操作就可以对更加便捷的调用其内部的指令; 举个例子;比如有一份proc.c的C语言文件,我们在使用的过程中需要多次的对文件编译,正常情况下每次编译都要使用gcc proc.c -o...proc;生成可执行文件proc;这样操作是很麻烦的;makefile工具可以很好的解决这种频繁调用编译的问题; makefile的使用 makefile其实就是一个文件;但是不是个普通的文件; makefile
序言: 可以利用Python来写一些工具来提高工作效率。把重复繁琐机械化的事情交给Python脚本去完成。 这里利用Python来写一个反编译和重签名的工具。...二、反编译脚本 1、apktool工具 Android的反编译可以使用apktool工具。...handle_file #初始化 def init(root): global root_apktool,jdkroot #定义为全局变量 root_apktool = root+"/base/apktool" #反编译工具...反编译工具到此就可以使用,算完成了。...但CMD界面看起来也太挫了,可以为反编译工具写个界面。 界面编写可以使用界面设计工具 Qt Designer。
/tensorflow https://github.com/tensorflow/custom-op https://www.tensorflow.org/install/source (官方网站编译教程...,有较为详细的编译步骤) tensorflow bazel 编译命令: (编译cpu支持的版本,限制编译的内存为2GB, 并兼容旧版本的ABI) bazel build --config=opt
一、背景知识 预处理(进行宏替换/去注释/条件编译/头文件展开等) 编译(生成汇编) 汇编(生成机器可识别代码) 连接(生成可执行文件或库文件) 二、gcc编译选项 格式 gcc [选项] 要编译的文件...比如我们查看下 hello 这个可执行程序依赖的动态库,会发现它就用到了一个c动态链接库: $ ldd hello linux-vdso.so.1 => (0x00007fffeb1ab000)...libc.so.6 => /lib64/libc.so.6 (0x00007ff776af5000) /lib64/ld-linux-x86-64.so.2 (0x00007ff776ec3000...注意: • Linux下,动态库XXX.so, 静态库XXX.a • Windows下,动态库XXX.dll, 静态库XXX.lib 一般我们的云服务器,C/C++的静态库并没有安装,可以采用如下方法安装...# Centos yum install glibc-static libstdc++-static -y #ubuntu 略(apt) 2、编译器自举 编译器自举(Bootstrapping)是指通过现有的编译工具来构建新的编译器的过程
一、代码工具–vim 1、vim基本概念 vim我们主要使用三种模式,分别是命令模式、插入模式和底行模式 命令模式:用户所有的输入都会被认为是命令,可以控制屏幕光标的移动,字符、字、行删除,可以按i进入插入模式或按...因为它原本也只是一个文本编辑器,配置一下有利于我们进行代码的写入,所以以后写文本文件我们用nano,写代码就用vim 我们的vim配置都在隐藏文件.vimrc中 一般我们推荐直接一键化配置vim,不要自己去配置了,很麻烦,在Linux.../install.sh 二、编译工具–gcc/g++编译器 这里只讲gcc,因为g++跟gcc指令基本差不多,而C语言作为基础语言大家更方便学习 1、程序翻译过程 c程序的翻译分为预处理、编译...、汇编、链接四个部分,这里我们可以穿插新内容简单回忆一下,有兴趣大家可以看看我以前写的有关这部分的blog C语言预处理~ C语言编译和链接~ 预处理阶段主要就是进行宏替换,生成.i文件 编译阶段检查代码规范性...[选项2] [目标文件] 选项1 作用 -E 只激活预处理 -S 编译到汇编语言不进行汇编和链接 -c 编译到目标代码 选项2 作用 -o 文件输出到文件 三、多人写作开发工具–git 1、简介
在进行开发 protoc 之前,你需要首先在你的计算机中安装 protoc 编译工具。 下载编译工具 进入 Protocol Buffers 的源代码中然后选择发布的版本中,找到对应的版本。...然后运行 protoc --version 来确定你的编译运行版本已经被正确配置。 通过下图,可以查看配置的文件夹。 ? 通过运行 protoc --version 来确定已经配置正确和编译器版本。...请注意,你不能对手动对这个文件进行编译,这个文件都应该是通过程序自动生成的。 ?
在进行开发 protoc 之前,你需要首先在你的计算机中安装 protoc 编译工具。 下载编译工具 进入 Protocol Buffers 的源代码中然后选择发布的版本中,找到对应的版本。...然后运行 protoc --version 来确定你的编译运行版本已经被正确配置。 通过下图,可以查看配置的文件夹。 通过运行 protoc --version 来确定已经配置正确和编译器版本。...请注意,你不能对手动对这个文件进行编译,这个文件都应该是通过程序自动生成的。
linux内核下载: https://mirrors.edge.kernel.org/pub/linux/kernel/ https://elixir.bootlin.com/linux/v4.14.34.../source http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ 查看系统位数: getconf LONG_BIT ?...树莓派使用 wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.4.38.tar.gz 下载到 /home/pi 路径下...解压 tar -zxvf linux-4.4.38.tar.gz ?
Linux下的vim编辑器:【Linux探索学习】第七弹——Linux的工具(二):Linux下vim编辑器的使用详解-CSDN博客 前言: 在上一篇我们学习了如何在Linux环境下直接用vim编辑器来进行编辑代码...,今天我们来学习如何运行我们所编辑的代码,运行代码就需要编译器,也就是我们下文要讲的gcc编译器 提醒:本文是在Ubuntu系统下进行的操作 一、什么是GCC GCC 是一个开源的编译器,它由 GNU...它是 Linux 和其他 UNIX 系统中最常用的编译器之一。...系统中,可以使用以下命令安装 GCC: sudo apt update sudo apt install build-essential build-essential 软件包包含了 GCC 及其相关的工具和库...七、总结 GCC 是 Linux 中强大的编译工具,灵活且功能丰富。
目录 1.g++/gcc的使用 2.Makefile ---- 1.g++/gcc的使用 在学习gcc/g++之前,需要先回顾一下程序的翻译过程: 预处理(头文件展开、去注释、宏替换、条件编译) 编译...那么,在一般情况下,我们的Linux的函数库是静态还是动态的呢?...其实,在这里我们就能继续看到,我们在Linux的指令,其实都是动态库中的。...makefile是一个工具,可以"自动化编译",只需要一个make命令,整个工程就会完全自动编译,大大地提高软件开发效率。 makefile是一个文件,make是一个命令。 如何使用makefile?...在编译完成,生产可执行程序后,源文件的Modify时间一定比可执行程序的Modify时间早! 于是,我们就知道了,gcc是通过比较两个时间来得知是否需要重新编译。
前言: 在Liunx中存在着两种编译器gcc/g++,gcc是只用来编译c语言的编译器,而g++可以编译c/c++。 程序的翻译过程需要经历四个步骤:预处理,编译,汇编,链接。...首先我们今天用的工具是gcc,我们code.c中写的printf函数全是c语言中的库,并没有使用第三方的库,gcc是专门用来编译c语言的,所以它在自己内部就能找到c语言的标准库在哪。在这里体现不出来。...常见的文件扩展名包括 .dll(Windows)、.so(Unix-like系统,如Linux)、.dylib(macOS)。 优点:节省内存和磁盘空间,因为多个程序可以共享同一个库文件。...前提:你的系统里面要有静态库 总结: gcc默认形成的可执行程序是动态链接的 gcc -static:采用静态链接的方式 不管是动态链接还是静态链接,前提都得保证你有对应的库 Linux一般只存在动态库...,动态库也称之为共享库 如果我们想在我们的Linux下安装c语言或者c++的静态库,我们可以输入yum install glibc-static/libstdc++-static -y,一般情况下的静态库是没有装的
arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。...可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。...源码版:交叉编译器源代码,一般很少用到。...为方便国内用户下载使用,我们从Codesourcery(Mentor)官网下载了所有版本的arm-none-linux-gnueabi-gcc编译器,并放到国内云盘上提供下载。...1 Linux解压版 gnu-csl-arm-2005Q1B-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载 arm-2006q1-3-arm-none-linux-gnueabi-i686
上一篇介绍了在window上编译opencv的动态链接库,这一篇介绍在Linux上编译opencv的so库的过程。...准备工具 安装Cmake sudo apt install cmake 下载opencv源码 官网下载opencv源码 ?...编译 cd opencv3.4.3 mkdir build cd build cmake .. 配置成功应该如下提示 ? make ? make install ?
当前环境:centos7.3一台 软件版本:ant-1.9 部署目录:/usr/local/ant
基于DSL(领域特定语言)语法的自动化构建工具。在github上,gradle项目很多,有的是gradel跟maven构建一块儿使用,可以看出,gradle有一种逐渐替代maven的架势。
领取专属 10元无门槛券
手把手带您无忧上云