linux编译

linux下Mysql 8.0.19 编译安装

我是研究僧i 提交于 2020-03-06 17:54:31
1 前言 linux下安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,这里使用的是最后一种,从源码编译安装。 编译安装需要大量的耐心与时间,而且还会遇到非常多奇奇怪怪的问题,因此,需要极大的毅力,很有可能一万次失败也换不来一次的成功,请做好心理准备。 2 准备工作 下面是安装要求,已安装的可以跳过。 cmake boost gcc ncurses openssl bison doxygen 2.1 gcc gcc的话一般linux都配备,最低要求版本为5.3,需要更新的话可以看笔者的 另一篇博客 。 2.2 boost boost不需要手动安装,后面运行cmake脚本的时候会自动下载安装,当然也可以手动安装,官网的文档说是需要特定版本,这里的MySQL Server 8.0.19需要的是1.70.0,目前最新的boost库为1.72.0。 2.3 cmake 看笔者的 另一篇博客 。 2.4 其他 其他一般使用仓库安装即可,当然也可以每一个都去折腾从源码安装,你喜欢就好。 2.4.1 Red Hat系 7.x: sudo yum install -y bison bzip2 git hostname ncurses-devel openssl

Arduino编译bootloader

微笑、不失礼 提交于 2020-03-06 08:35:38
最近打算自己定制一个Arduino的板子,改改Arduino的烧写机制。好在bootloader都是有源代码的,说干就干,改写前当然要试试这个源码能不能编译,可是到了bootloader目录就茫然了。。。。。竟然用的是makefile,可是作为一名程序猿当然不能退缩了。。。   1、找到bootloader源码   bootloader的源码都在\arduino-1.6.9\hardware\arduino\avr\bootloaders文件夹下,不同的单片机芯片或者arduino板有不同的文件夹,就拿最廉价的atmega8下手吧,正好我也有很多usbasp的pcb可以改改。进入到atmega8目录,可以看到下边有几个文件,毫无疑问.c文件就是源码了,暂时不修改源码,只是尝试编译一下,所以这次先不讲解.c文件,还有两个.hex的文件,这是实现编译好的hex文件,当新做的arduino板连接到ide烧写bootloader时,就是用的这里的hex,这个hex也没啥好说的。最后一个文件就是makefile了,makefile一般只有牛x的程序员才会编写,我一般都是照葫芦画瓢,但是为了折腾,还是得上。。。。   2、寻找make.exe   虽然没有写过makefile,至少见过makefile,之前没有读过多少书,编译程序次数多了多少也看出来一些门道。每次编译总是需要输入make命令

GCC的常用的一些总结

依然范特西╮ 提交于 2020-03-06 06:18:39
英文版本的GCC请在linux terminal 中写入man gcc 去查看 GCC 格式: gcc [-c | -S | -E][-std = standard] [-g][-pg][-Olevel] [-Wwarning][-pendantic]        [-Idir][-Ldir] [-Dmacro[=defn]...][-Umacro]         [-foption...][-mmachine -option...] [-o outputfile][@file] infile.... 大多数情况基本都是工 -c -S -E -Wall -o -O(1~3) 下面解释常用命令的意思: -c:只编译不连接 此命令用于编译每一个.c 文件成为汇编语言 等着最后一起连接 -S: 只编译不生成汇编语言 -E: 只是进行预编译 即只是把预编译部分替换到程序里面 -o filename :对编译好的.o文件进行链接 生成可编译的执行文件 使用案例: 1. gcc -c one.c 这个命令是把one.c 编译且生成one.o 2.gcc -o one one.o 把one.o 转换成one可执行文件 3. gcc -c -o one.o one.c 编译one.c 并且把one.c 链接成one.o 来源: https://www.cnblogs.com/shwzh1990

Linux 相关编译知识

瘦欲@ 提交于 2020-03-05 04:46:00
  一直对编译的过程概念很模糊,总结记录一下方便以后复习。   Linux下gcc编译器使用:   gcc编译流程: 1、预处理        gcc -E hello.c -o hello.i        对包含的头文件和宏定义进行处理 2、编译         gcc -s hello.i -o hello.s        检查代码的规范性,是否有语法错误,把代码翻译成汇编语言 3、汇编         gcc -c hello.s -o hello.o        汇编语言转成二进制目标代码 4、链接         gcc hello.o -o hello                 上述流程中的第四步链接阶段,涉及到一个概念:函数库   函数库分为静态库和动态库两种。静态库是指编译链接时,将库文件的代码全部加入可执行文件中,因此生成的文件较大,但是在运行时不再需要库文件, 其后缀名为“.a”。动态库是在程序执行的时候加载库,这样可以节省开销,后缀名为".so"。   静态库: 静态库的生成及使用: 1、生成.o文件      gcc -c hello.c 2、制作静态库      ar rcsv libhello.a hello.o              ar:归档工具,将hello.o归档成静态库 3、链接静态库      gcc -o hello

Linux 下文件编译

為{幸葍}努か 提交于 2020-03-05 04:41:06
以前一直不理解Linux 下编译产生的各种文件是什么意思,今天花了一点时间来理一理: 首先介绍静态链接库(lib)和动态链接库(dll)的区别: 静态链接库就是把(lib)文件中用到的函数直接连接到目标代码中,程序运行时不需要改静态库;动态库在编译时不会被连接到目标代码中,在程序运行时会动态的调用这个dll库 1、以下面的源程序为例--hello.c、hello.h和main.c: 程序1: hello.h #ifndef HELLO_H #define HELLO_H void hello(const char *name); #endif //HELLO_H 程序2:hello.c #include <stdio.h> void hello(const char *name) { printf("Hello %s!\n", name); } 程序3:main.c #include "hello.h" int main() { hello("everyone"); return 0; } 2、将hello.c编译成.o文件 无论静态库,还是动态库,都是由.o文件创建的 gcc -c hello.c 会生成hello.o目标文件 3、由.o文件创建静态库 静态库文件名是以lib为前缀,扩展为,a.创建静态库时用ar命令 ar -cv libhello.a hello.o 4

Windows编译安装CMake

拜拜、爱过 提交于 2020-03-04 15:30:38
CMake是与平台无关的用来编译的软件,最近需要CMake,但是由于网络原因去 CMake官网 是不可能下载下来的…其他地方比如 Gitee 倒是可以,但是没有编译好的,只有源码,搜遍全网也只有在Linux下编译的教程,并没有Windows的。下面我就来记录一下怎么在Windows上编译CMake 一. 下载源码 首先到上面的 Gitee 下载得到源代码包 千万别去GitHub下,太慢了,谁用谁知道 下载好之后解压到你指定的位置,如下图所示(解压很慢的,我就不示范了吧。。。) 之后你自己在这个目录里建立一个名为 build 的空文件夹,用来存放编译生成的文件 二. 得到.sln文件 这里我默认你已经在电脑里安装了 Visual Studio 了 首先,你需要有个低版本的CMake。。。。。。。 所以我就直接给一个 低版本的吧 。 提取码: 0tyx 记得加进环境变量 在命令行中打开上一步建立的 build 文件夹,如图所示 输入命令 cmake .. 然后会开始输出代码,类似这样子的,我这个是找个别的工程来模拟,实际情况也差不多 完成后,打开 build 文件夹,可以看到这样的文件结构,还是模拟,实际情况比图片里多很多 我们可以看到得到了一个sln文件,就是它了 三. Visual Studio编译 点击得到的sln文件进入Visual Studio,点击那个批生成,选中下面几项

移植mysql到arm平台

自作多情 提交于 2020-03-04 15:13:02
最近需要将一个程序移植到arm平台上,程序调用了MySQL数据库,所以就牵扯到将MySQL数据库移植到ARM平台上面,所以在网上大量查阅资料。在baidu文库发现了一篇文档,是wlzxlc上传的文档名称为 :《 编译ARM平台的QtEmbedded的MySQL插件和移植MySQL 》 。 下面说明里面介绍到: ARM平台下的QtEmbedded所需mysql插件,及MySQL的移植。 我的整个移植过程参考了这篇文档,但是遇到了很多的问题,所以又上网搜寻其它资料。现在我已经移植成功,回头看这篇文档,就发现里面有很多疏漏甚至是错误。这些东西如果不详细注明出来,更多的新手绝对还会重蹈我的覆辙,所以在这里将 mysql 的 arm+linux 移植经验贴出来,希望对新手以及做相关方面工作的人能有帮助。所有在《 编译ARM平台的QtEmbedded的MySQL插件和移植MySQL 》这篇文档中的错误以及注意事项,我也会一一列出,在下面我将其称为“原文”。 编译器:arm-linux-gcc(4.3.2) P c平台:ubuntu 在移植之前有必要先说明一下几个问题: 1.M y SQL还没有支持交叉编译的版本出现.但为了让编译继续 , 必须在 configure 脚本中将多处不支持交叉编译的命令全都注释掉,才能让 configure 顺利通过。 2.交叉编译过程中需要用到 ncurses-5

如何编写makefile

匆匆过客 提交于 2020-03-03 18:57:43
一: Makefile 介绍: Makefile 是为自动化编译而生。我们写好 makefile 文件后,只需要一个 make 命令,就可以完成整个项目的编译工作,大大提高了开发效率。 也许刚开始学习编程时,你不会感觉到 makefile 的重要性。比如,你在 linux 环境下编写了一个叫 hello.c 的程序,然后通过输入: gcc hello.c -o hello 便生成名为 hello 可执行文件。 随着我们编写的程序规模越来越大,你会发现用这种纯手工的做法去编译程序,是极其低效的。那么我们看看,如何通过编写 makefile 文件让程序的编译变得高效、自动化吧! 二: makefile 编写规则 Makefile 文件的作用是告诉 make 命令,如何去编译、链接程序。为了使 make 命令能够正确的解析我们的 makefile 文件,我们必须按照一定的规则来编写 makefile 。 目标: 以 c 程序为例,编写好 makefile 文件后,我们要达到的效果如下: 1. 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。 2. 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。 3. 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。 总则: Makefile文件中的规则格式如下:

Mono 在Ubuntu 上的安装

拜拜、爱过 提交于 2020-03-03 18:53:29
所需软件: mono: ftp://www.go-mono.com/archive/1.2.5/linux-installer/5/ mono SourceCode:http://go-mono.com/sources-stable/ gcc ftp://ftp.gnu.org/gnu/gcc/ glib ftp://ftp.gnu.org/gnu/glibc/ gnu m4 ftp://ftp.gnu.org/ pgk http://pkgconfig.freedesktop.org/releases/ gettext ftp://ftp.gnu.org/gnu/gettext/ bison ftp://ftp.gnu.org/gnu/bison/ gtk http://download.chinaunix.net/download/0005000/4195.shtml vmware 6.0.2 h ttp://yqtel.cncrk.com:8080/soft/keygen/VMware-workstation.rar 1.在xp系统上安装vmware 6.0.2 2.在vmware上安装Ubuntu 7.1(iso) (到出现正在设置APT(82%)正在扫描镜像站点...停住了,几小时不动,怎么办? http://www.linuxdiyf.com/bbs

Linux命令行编译Qt项目

你离开我真会死。 提交于 2020-03-03 11:19:43
1.系统环境 Linux系统版本 1 cat /etc/issue 系统内核 1 uname -a 2.Qt安装完成后,添加qmake的路径到PATH路径中, 1 #添加qmake路径到PATH路径中 2 vim.tiny /home/elephantrob/.bashrc 3 4 #在打开的.bashrc最末端添加PATH 5 export PATH=$:/home/elephantrob/Qt/5.5/gcc/bin 6 7 #保存退出编辑的.bashrc文件,source重新执行该文件 8 source /home/elephantrob/.bashrc 确认qmake版本 1 qmake -v 3.编写shell脚本(build.sh),执行脚本build.sh,开始编译 1 qmake TestQt.pro -r -spec linux-g++-32; 2 make clean; 3 make -j4 来源: https://www.cnblogs.com/Asatic/p/12400800.html