linux编译

Cmake用法

此生再无相见时 提交于 2019-12-18 10:52:15
目录 1,Cmake introduce 1.1 常用的目录结构 2,CMakeLists.txt文件的写法 Cmake 常用命令 Scripting Commands set include Project Commands add_executable add_library aux_source_directory include_directories project cmake_minimum_required 编译选项宏设置 gcc 编译时候加入宏信息 cmake --version 3.10 doc 1,Cmake introduce CMake是一种跨平台编译工具,用来生成makefile。CMake主要是编写CMakeLists.txt文件,然后用cmake命令执行CMakeLists.txt文件生成make所需要的makefile文件,最后用make命令编译源码生成可执行程序或库文件。 cmake 指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录。cmake后会生成很多编译的中间文件以及makefile文件,所以一般建议新建一个新的目录,专门用来编译,例如 mkdir ckbuild cd ckbuild cmake .. make 1.1 常用的目录结构 . ├── build ├──

编程语言分类

走远了吗. 提交于 2019-12-18 09:57:01
[TOC] 目录: 一 引子 二 编程语言分类: 2.1 机器语言 2.2 汇编语言 2.3 高级语言 2.3.1 编译型 (如C语言) 2.3.2 解释型 (如Python) 2.4 总结 #一 引子 ​ 基于上一章所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。 ​ 本章的主题是先带大家了解下编程语言,然后重点介绍python这门编程语言 插图:恶搞图01 二 编程语言分类: 2.1 机器语言 机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件),详解如下 #机器语言 用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍

路由器开发

最后都变了- 提交于 2019-12-18 01:28:01
宽 带上网已经不是什么新鲜事情,人们对相关的网络器件已经不再陌生,比如说常见的路由器。对于一般的网络用户,他们能知道怎样使用路由器来上网、玩游戏等就 已经感到很满足了,通常情况下对路由器的深层技术很少去过问研究,但做为兴趣广泛的技术爱好者,对这方面的知识是非常感兴趣的。但限于各种条件的制约,这 些爱好者都非开发者,很大程度上无法深入了解真正的技术实现过程以及相关的核心内幕。正是基于此点,笔者凭借自身的知识沉淀,尽最大努力为爱好技术的读者 架设一坐能通向深层核心的桥梁,为大家揭开路由器的神秘面纱,剖开其核心内脏。为使读者能清晰明白的理解掌握,笔者尽量将专业的技术内容转化为容易接受的 知识讲解,其中可能有不足偏颇之处,还请大家多见谅。 概述 什么是路由器? 互联网是依靠路由器连接起来的,路由器是互联网或者说IP网络的核心设备。宽带接入的不断增长,带动了路由器的需求不断增加。 路由器究竟是什么样的技术产物? 谈到路由器的开发,我们就不免要谈到“嵌入式”设备的开发,没错,通俗的说,路由器就是一种嵌入式产品。那么究竟什么是嵌入式设备呢?    其实就目前而言,嵌入式设备已经不断深入我们的日常生活方方面面。通俗的讲,嵌入式设备是指具有计算机功能,但又不称为计算机的设备或器材,它几乎包括 了我们周围的所有电器设备 PDA、手机、机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、立体音响

linux编译安装mysql数据库详解

淺唱寂寞╮ 提交于 2019-12-17 22:01:08
准备环境 1、安装确保以下系统相关库文件 gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* cmake # yum –y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* cmake 2、建立mysql安装目录及数据存放目录 # mkdir /usr/local/mysql # mkdir -p /data/mysql 3、创建用户和用户组 # groupadd mysql # useradd -g mysql -s /sbin/nologin mysql 4、赋予数据存放目录权限 # chown mysql.mysql –R /data/mysql 二、安装MySQL 5.6.35 1、获取解压mysql-5.6.35.tar.gz 在mysql.com官网或国内镜像下载源码 # wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35.tar.gz # tar zxvf mysql-5.6.35.tar.gz # cd mysql-5.6.35 2、编译mysql-5.6.35

ARM服务器编译安装ClickHouse

蓝咒 提交于 2019-12-17 17:13:51
目录 一、编译安装ClickHouse背景 二、编译安装ClickHouse方法 三、编译安装ClickHouse环境 四、编译安装ClickHouse步骤 1,安装依赖项 2,编译安装cmake 3.,编译安装GCC编译器 4,编译安装clang编译器 AArch64架构需要使用Clang编译器,X86架构可直接使用GCC编译器,不必做这步 5,编译安装ClickHouse 6,测试验证ClickHouse 7,编译过程遇到的问题 一、编译安装ClickHouse背景 因公司需要在华为泰山服务器验证开源软件安装及功能测试,AARCH64 (ARM64) 架构服务器,不支持SSE 4.2 指令集,在以前是试验性支持的,刚好ClickHouse release v19.17.4.11, 2019-11-22 新版本已经正式支持ARM64服务器,目前没有预编译好的版本,需要进行编译安装。 二、编译安装ClickHouse方法 * 先介绍下X86架构ClickHouse编译,我们常用的电脑都是X86处理器,不必搭建交叉编译环境,直接在本地虚拟机,并且可使用GCC编译ClickHouse。 * 编译方法1:为AArch64 CPU进行构建ClickHouse,可搭建aarch64交叉编译环境:在x86架构服务器,构建出能在AARCH64 CPU 体系架构的Linux上运行的二进制程序

android快速编译的方法

空扰寡人 提交于 2019-12-17 12:14:00
Android codebase都很大,编译一次都需要花很多时间,如果是preloader/lk/bootimage还好,但是Android的话都是非常久。 实际上这个编译时间还是可以进一步缩短! 1. 移除modules_to_check (1). Android默认是所有模块都会编译的(不管需不需要),这个有些冗余,可以通过修改编译系统不编译哪些没有用到的模块 (2). 修改方法:alps/build/core/main.mk files: prebuilt \ $(modules_to_install) \ $(modules_to_check) \ $(INSTALLED_ANDROID_INFO_TXT_TARGET) 修改为: files: prebuilt \ $(modules_to_install) \ $(INSTALLED_ANDROID_INFO_TXT_TARGET) (3). 修改后Android编译时间降低16%~18% (数据仅供参考) (4). 此种方法google已在4.3版本默认应用了。 (5). 仅对new有效果,但是由于没有编译没有用到的模块,不仅节省时间还节省磁盘空间(节省out目录下的中间文件)。 2. 开启ccache (1). ccache是google默认就存放在codebase的工具,对于ccache的功能可以到网络搜寻资料。

CentOS系统上编译、安装、配置OpenCV

那年仲夏 提交于 2019-12-17 10:41:10
声明:本文是个人根据相关博客资料加上自己的经验整理,在此分享以供大家学习交流! 假设CentOS系统下的 CodeBlocks 已经安装完成,下面我们要在CentOS平台下编译OpenCV,并在CodeBlocks下进行开发测试。 (1)下载OpenCV源码,并编译安装 当前最新的版本是OpenCV-2.2,可以从 http://sourceforge.net/projects/opencvlibrary/ 上下载。 OpenCV的编译方式有两种,一种是传统的./configure ; make ; make install,这种方式适用于OpenCV-1.0,相应的编译过程可以参见这篇文章: http://www.opencv.org.cn/index.php/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91 ,另一种方式是使用cmake . ; make ; make install,这种方式适用于OpenCV-2.x。所以,在编译OpenCV-2.2之前,得先在CentOS上安装CMake( http://www.cmake.org/ )。 (1.1) 编译安装cmake: 假设cmake-2.8.4.tar.gz放在/root/software/cmake-2.8.4.tar.gz cd /root/software/ tar zxvf cmake

2018-2019-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉

冷暖自知 提交于 2019-12-17 10:31:42
2018-2019-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉 实验目的: 熟悉Linux开发环境;学会Linux开发环境的配置和使用;使用Linux的arm编译。 实验过程: 实验一-1-交叉编译环境-(使用自己笔记本电脑) 1.安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe” 2.解压老师提供的software目录中的“Ubuntu1204.rar” 3.用VMWare打开Ubuntu,用户名:linux,口令:1 4.建立实验目录"mkdir linux_20175304_20175303_20175327_20175335" 5.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名 #include <stdio.h> int main(){ printf("HelloWorld!\n"); printf("20175304_20175303_20175327_20175335\n"); return 0; } 1.考bocsd目录中的脚本armc.sh, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc

建立 arm-linux 交叉编译环境

随声附和 提交于 2019-12-17 09:35:14
我们使用以下版本的文件为例子建立 arm-linux 交叉编译环境: 编译环境 redhat 7.2 或 8.0 binutils-2.14.tar.gz ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz gcc-core-2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95....e-2.95.3.tar.gz gcc-g++2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95....+-2.95.3.tar.gz glibc-2.2.4.tar.gz ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gz glibc-linuxthreads-2.2.4.tar.gz ftp://ftp.gnu.org/gnu/glibc/glibc-l...ds-2.2.4.tar.gz linux-2.4.21.tar.gz ftp://ftp.kernle.org/pub/linux/kern...x-2.4.21.tar.gz patch-2.4.21-rmk1.gz # linux kernel patch for arm ftp://ftp.arm.linux.org.uk/pub/linu...-2.4

python调用c\\c++

眉间皱痕 提交于 2019-12-16 23:47:50
前言 python 这门语言,凭借着其极高的易学易用易读性和丰富的扩展带来的学习友好性和项目友好性,近年来迅速成为了越来越多的人们的首选。然而一旦拿python与传统的编程语言(C/C++)如来比较的话,人们往往会想到效率问题。本文不打算探讨语言之间的比较,然而python实际使用时确实会有能用更底层的C/C++更好的情况,因此本系列旨在介绍几种相对常见的 python环境下调用C/C++ 的方法。(挖坑:CTYPES,SWIG,BOOST.PYTHON,CYTHON) 阅读这篇文章需要什么? 语言:简单的python基础与简单的C/C++基础。 C/C++的环境与python的环境。 步步跟进 搜索引擎/工具书 随时查询不明白的地方。 PS:本文中会有一些延伸性的知识点,加之本人语文水平惨不忍睹导致文风惊悚,所以 如果阅读途中感到不适请务必跳过延伸性的部分(用大括号括起来的部分) 。 目录 一、环境配置 二、C/C++一侧 库 代码 extern "C" extern 和 static #ifdef DLL_EXPORT __cdecl和__stdcall 三、CTYPES 加载 数据类型 访问导出变量 函数进出参数的定义 argtypes restype 指针和引用 数组 小结 四、参考资料 一、环境配置 介于这是本系列的第一篇,我简单介绍一下环境(vim