linux编译

编译原理之预处理、编译与链接

余生颓废 提交于 2020-01-14 04:46:09
先上一张图吧,完美表示出了,一个编辑好的程序变成可运行文件经过的过程(可以把编译和汇编统称为编译)。 一、预处理(预编译、编译预处理) 主要处理源代码文件中的以“#”开头的预编译指令 1.删除所有的#define,展开所有的宏定义。 2.处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。 3.处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。 4.删除所有的注释,“//”和“/**/”。 5.保留所有的#pragma 编译器指令,编译器需要用到他们,如:#pragma once 是为了防止有文件被重复引用。 6.添加行号和文件标识,便于编译时编译器产生调试用的行号信息,和编译时产生编译错误或警告是能够显示行号。 C语言中源代码文件的文件扩展名为.c,头文件的文件扩展名为.h,经预编译之后,生成xxx.i文件。 在C++,源代码文件的扩展名是.cpp或.cxx,头文件的文件扩展名为.hpp,经预编译之后,生成xxx.ii文件。 二、编译 把预编译之后生成的xxx.i或xxx.ii文件,进行一系列词法分析、语法分析、语义分析及优化后,生成相应的汇编代码文件(语法查错)。 编译期仅仅知道内存分配的位置和大小,不做具体的分配操作 三、汇编 将汇编代码转变成机器可以执行的指令

编译安装HAProxy for Ubuntu1804

亡梦爱人 提交于 2020-01-13 15:06:27
环境 OS:Ubuntu1804 haproxy: http://www.haproxy.org/download/2.0/src/haproxy-2.0.4.tar.gz lua:http://www.lua.org/ftp/lua-5.3.5.tar.gz IP:192.168.7.182 安装步骤 1.准备编译安装HAProxy的基础环境 # apt install make gcc build-essential libssl-dev zlib1g-dev libpcre3 libpcre3-dev libsystemd-dev libreadline-dev -y 2.编译安装lua,为HAProxy支持基于其实现功能扩展。 注:HAProxy要求的lua最低版本为5.3 2.1 下载并且安装lua # wget -P /usr/local/src/ http://www.lua.org/ftp/lua-5.3.5.tar.gz # cd /usr/local/src/ # tar xf lua-5.3.5.tar.gz # cd lua-5.3.5/src/ # make linux 2.2 查看编译后的版本 # ./lua -v Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio 3.编译安装haproxy 3.1

Delphi 文件类型

夙愿已清 提交于 2020-01-13 15:02:35
该内容整理自以下链接 http://www.cnblogs.com/chenyunpeng/archive/2012/08/02/2620513.html 1.DPR: Delphi Project文件,系统的工程文件。文本格式,需要进源代码库。 2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元。 3.DFM: Delphi Form File,描述窗体或数据模块及其组件属性的二进制文件。窗体界面文件, 同PAS文件同名,而且一一对应, 定义了窗体属性和构件的属性。 4.BPG: Borland Project Group, 工程项目包, 多个工程文件(DPR)的集合。文本格式,需要进源代码库;bpg文件其实是makefile格式,要编译bpg文件可以使用make工具,语法如下:make -f %FileName% 5.DOF: Delphi Option File, 选项文件, 包括编译信息等。 6.CFG: Project Configuration File, 编译器可读的配置文件。 7.DSK: Desktop Setting File, 保存工程文件的桌面摆布情况, 下次打开时可以恢复上次保存的桌面状态。文本格式,此文件不应进源代码库。 8.DSM:集成开发环境IDE的临时保存文件, 有时IDE总出错, 可以将这个文件删掉,

linux 下编译安装php7.3

纵然是瞬间 提交于 2020-01-13 13:41:23
编译安装php7.3 安装原文地址:https://blog.csdn.net/weixin_42579642/article/details/85290670 如遇见 :make: *** 没有指明目标并且找不到 makefile 解决方法:https://blog.csdn.net/asia66/article/details/85703643 憨憨操作:sudo chmod -R 777 /root/php-7.3.3;//给文件夹及下面文件权限 sudo ./configure //重新设定配置(我的理解) 来源: CSDN 作者: qq_42600889 链接: https://blog.csdn.net/qq_42600889/article/details/103953226

计算机系统大作业 程序人生-Hello’s P2P From Program to Process

北慕城南 提交于 2020-01-13 04:10:37
计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 计算机 学 号 1180300327 班 级 11803003 学 生 黄锦洋 指 导 教 师 史先俊 附件:https://download.csdn.net/download/wyp237/12082603 计算机科学与技术学院 2019 年 12 月 计算机系统基础课程报告 1 - 摘 要 本文通过 hello.cP2P 和 020 的整体介绍,回顾了对计算机系统的学习,并稍做 拓展和深入,对相关存储与相关函数做了些许介绍。 关键词:计算机系统;P2P;020;存储;I/O (摘要 0 分,缺失-1 分,根据内容精彩称都酌情加分 0-1 分) 计算机系统基础课程报告 2 - 目 录 第 1 章 概述 … - 4 - 1.1 HELLO 简介 … - 4 - 1.2 环境与工具 … - 4 - 1.3 中间结果 … - 4 - 1.4 本章小结 … - 5 - 第 2 章 预处理 … - 6 - 2.1 预处理的概念与作用 … - 6 - 2.2 在 UBUNTU 下预处理的命令 … - 6 - 2.3 HELLO 的预处理结果解析 … - 6 - 2.4 本章小结 … - 7 - 第 3 章 编译 … - 8 - 3.1 编译的概念与作用 … - 8 - 3.2 在 UBUNTU 下编译的命令 … - 8

Ubuntu caffe编译踩坑记录

被刻印的时光 ゝ 提交于 2020-01-12 07:30:31
在ununtu编译CPU版本caffe和caffepython。 先贴最后的config文件,再贴踩坑。 2019-09-03 10:33:39 ## Refer to http://caffe.berkeleyvision.org/installation.html # Contributions simplifying and improving our build system are welcome! # cuDNN acceleration switch (uncomment to build with cuDNN). # USE_CUDNN := 1 # CPU-only switch (uncomment to build without GPU support). CPU_ONLY := 1 # uncomment to disable IO dependencies and corresponding data layers # USE_OPENCV := 0 # USE_LEVELDB := 0 # USE_LMDB := 0 # This code is taken from https://github.com/sh1r0/caffe-android-lib # USE_HDF5 := 0 # uncomment to allow MDB_NOLOCK

WebRTC Android 编译

笑着哭i 提交于 2020-01-12 05:32:13
一 、前言 WebRTC 名称源自网页即时通信(英语:Web Real-Time Communication)的缩写。谷歌收购并开源支持 网页浏览器 进行实时语音对话或视频对话的 API 。它于2011年6月1日开源并在 Google 、 Mozilla 、 Opera 支持下被纳入 万维网联盟 的W3C推荐标准。 如果不修改 webrtc 相关源码,建议不要去折腾编译这个源码工程,光下载源码就够你头疼的。 可以直接引用已经编译好的中央库(Maven或者Gradle): 官方推荐: compile 'org.webrtc:google-webrtc:1.0.+' (+ 换成对应版本号,一定要去上面网址里面查询是否存在该版本,版本号查询地址: https://bintray.com/google/webrtc/google-webrtc ) 官网地址 : https://webrtc.org 。 二、环境准备 1、WebRTC 编译暂时支持 linux 平台,所以需要有一个 linux 系统或模拟器 2、设置代理,这一步不做过多介绍,需要注意的是需要在终端设置代理,这一步也是比较坑的一步,大家可以搜一下怎么设置 3、下载 depot_tools:git clone https://chromium.googlesource.com/chromium/tools/depot_tools

如何保护Python代码?

痞子三分冷 提交于 2020-01-12 04:10:37
我正在用 Python 开发一款软件,该软件将分发给我的雇主的客户。 我的雇主希望通过限时许可文件来限制软件的使用。 如果我们分发.py文件甚至.pyc文件,则很容易(反编译和)删除检查许可证文件的代码。 另一个方面是,我的雇主不希望我们的客户阅读该代码,因为担心该代码可能被盗或至少是“新颖的主意”。 有解决这个问题的好方法吗? 最好使用现成的解决方案。 该软件将在Linux系统上运行(因此,我认为py2exe不会成功)。 #1楼 我认为还有另一种方法可以保护您的Python代码; 混淆方法的一部分。 我相信有一个像Mount and Blade这样的游戏,或者某些东西改变了并重新编译了自己的python解释器(我认为它是开源的原始解释器),只是将OP代码表中的OP代码更改为与标准python OP不同代码。 因此python源代码未修改,但* .pyc文件的文件扩展名不同,并且操作码与公共python.exe解释器不匹配。 如果您检查了游戏数据文件,则所有数据均为Python源格式。 各种各样的恶作剧都可以通过这种方式与未成熟的黑客打成一片。 阻止一堆没有经验的黑客很容易。 这是您不可能击败的专业黑客。 但是我想象中的大多数公司都不会长时间聘请专业黑客(可能是因为事情被黑客入侵了)。 但是到处都是不成熟的黑客(以好奇的IT员工的身份阅读)。 例如,您可以在经过修改的解释器中

海思AI芯片(Hi3516DV300/CV500)开发(3.搭建Linux开发环境)

房东的猫 提交于 2020-01-12 00:19:44
目录 1、软件包安装 2、编译arm-himix200交叉编译器 3、编译uboot和Kernel 前言:此篇搭建环境的Linux平台为ubuntu16.0.4 64位系统,SDK的目标平台为Hi3519DV300\CV500系列。 1、软件包安装 步骤 1 配置默认使用 bash 执行 #sudo dpkg-reconfigure dash 选择 no 步骤 2 安装软件包 执行: #sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc 步骤 3 创建/etc/ld.so.preload 文件 并执行 #echo "" > /etc/ld.so.preload 以解决 64bit linuxserver 上某些第三方库编译失败的问题。 步骤 4 安装其他软件包 因为Linux交叉编译器是32位的,而ubuntu16.0.4是64位的,因此需要安装lib32ncurses5和lib32z1兼容x86的运行库及环境。 #sudo apt-get install

Linux SDIO WIFI Marvell8801/Marvell88w8801(二) --- Marvell88w8801驱动编译和测试

本秂侑毒 提交于 2020-01-11 18:11:10
代码工程的GITHUB连接: 点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi 1.Linux SDIO WIFI Marvell8801/Marvell88w8801(一) — 代码及文档介绍 2. Linux SDIO WIFI Marvell8801/Marvell88w8801(二) — Marvell88w8801驱动编译 3. Linux SDIO WIFI Marvell8801/Marvell88w8801(三) — Linux驱动以及组件的使用 4. Linux SDIO WIFI Marvell8801/Marvell88w8801(四) — Linux Wi-Fi架构 5. Linux SDIO WIFI Marvell8801/Marvell88w8801(五) — Linux SDIO API介绍 6. Linux SDIO WIFI Marvell8801/Marvell88w8801(六) — Marvell Linux Wi-Fi driver介绍-WIFI插入卡槽内发生的事情 7. Linux SDIO WIFI Marvell8801/Marvell88w8801(七) — Marvell Linux Wi-Fi