linux编译

使用gcc编译gdb调试

╄→гoц情女王★ 提交于 2020-03-13 08:54:00
gcc 在linux系统中,默认是没有安装gcc编译器的,可以通过命令 rpm -q | grep gcc 来查看。安装命令为: yum -y install gcc 安装后,编写一个.c结尾的文件。 gcc test.c 就会默认输出一个a.out的输出文件,这个输出文件就是可执行文件。 如果加上-o选项,则可以自定目标文件。 gcc -o test test.c test就是它的可执行文件。 一般都默认加上-Wall 选项,可以自动提示一些出错警告的信息。 gcc -Wall -o test test.c gbd 以上就是常用的gcc相关知识了。下面就是它的调试,调试通常使用gdb。在编译的时候需要加上选项-ggdb3选项 gcc -ggdb3 -Wall -o test test.c 这样在没有出错的情况下 gdb test 就进入调试窗口 输入下面命令可以进行如下的操作: break 设置断点 break 21 在第21行设置断点 break main 在main函数处设置断点 break test 在函数test处设置断点 step / s 下一步,直接执行下一条程序 continue / cont 下一段,如果遇到函数,不会进入函数,逐过程,有点类似VS里面的F10 run 运行 finish 结束调试 tbreak设置临时断点 print / p 显示某个变量的值 p

使用golang获取本机IP

纵然是瞬间 提交于 2020-03-12 19:00:54
如何获取本机网卡的IP地址 应用场景 需要知道用户的IP地址来分析问题,用户不知道怎么操作,这个时候把编译好的ip.exe发给对方运行截屏即可 golang可以编译全平台(win/mac/linux)程序 运行效果(win10操作系统) 代码 package main // 获取本机全部网卡的全部IP // 2020-03-12 16:52 import ( "fmt" "net" "fyne.io/fyne/app" "fyne.io/fyne/widget" ) //获取全部网卡的全部IP func Ips() (map[string]string, error) { ips := make(map[string]string) //返回 interface 结构体对象的列表,包含了全部网卡信息 interfaces, err := net.Interfaces() if err != nil { return nil, err } //遍历全部网卡 for _, i := range interfaces { // Addrs() 方法返回一个网卡上全部的IP列表 address, err := i.Addrs() if err != nil { return nil, err } //遍历一个网卡上全部的IP列表,组合为一个字符串,放入对应网卡名称的map中 for _,

Erlang需要了解的知识点

纵饮孤独 提交于 2020-03-12 10:58:42
Supervisor 启动的子进程中,用start启动和start_link启动会有什么不同? exit 被进程调用,为什么有些能杀掉进程,有些时候不能杀死进程? erlang节点之间如何通信? rebar是如何使用的?如何进行suit测试 如何将otp22.2编译成windows版本 如何编译otp22.2为linux版本 erlang的时间处理:os:system_time().os:timestap().等时间的处理知识 来源: oschina 链接: https://my.oschina.net/gaoxepro/blog/3192330

Erlang需要了解的知识点

社会主义新天地 提交于 2020-03-12 10:27:16
Supervisor 启动的子进程中,用start启动和start_link启动会有什么不同? exit 被进程调用,为什么有些能杀掉进程,有些时候不能杀死进程? erlang节点之间如何通信? rebar是如何使用的?如何进行suit测试 如何将otp22.2编译成windows版本 如何编译otp22.2为linux版本 erlang的时间处理:os:system_time().os:timestap().等时间的处理知识 来源: oschina 链接: https://my.oschina.net/gaoxepro/blog/3192330

Python基础简介与简单使用

纵饮孤独 提交于 2020-03-12 04:55:46
Python介绍 Python发展史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s FlyingCircus。 他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。 Granddaddy of Python web frameworks, Zope 1 was released in 1999 Python 1.0 - January 1994 增加了 lambda, map, filter and reduce. Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础 Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生 Python 2.5 - September 19, 2006 Python 2.6 - October 1, 2008 Python 2.7 - July 3, 2010 In

源码方式安装软件

强颜欢笑 提交于 2020-03-11 18:58:23
源码包编译安装 ======= Created 星期一 23 十月 2017 一、使用make编译软件前需要安装的包 GCC为GNU编译器套件(GNU Compiler Collection), yum -y install cpp ###cpp为c++库 yum -y install binutils ###二进制工具集,用于创建C库文件和创建静态库 yum -y install glibc ###GNU发布的libc库,即C运行库,其他库都依赖与glibc库 yum -y install glibc-kernheaders yum -y install glibc-common yum -y install glibc-devel yum -y install gcc ### GNU编译器套件,不仅可处理c语言,也可处理多种语言 yum -y install make ###可能系统不一定自带,最好Yum安装以下 二、静态链接库与动态链接库 题外话:函数与方法的区别:函数是大家的函数,直接调用可实现相应功能,无需关心数据结构算法以及自己进行编写,即可供大家使用的。方法是类的方法。静态库和动态库就是由大量的函数组成。 库分为静态链接库和动态链接库(共享库)。 2.1、静态函数库 这类库的名字一般是 libxxx.a ,扩展名为.a;利用静态函数库编译成的文件比较大,因为整个

windows搭建gcc开发环境(msys2) objdump

こ雲淡風輕ζ 提交于 2020-03-11 18:18:36
前言 可能你并不太了解msys2,但是作为一个程序员,你一定知道mingw,而msys2就集成了mingw,同时msys2还有一些其他的特性,例如包管理器等。 msys2可以在windows下搭建一个完美的类linux环境,包括bash、vim、gcc、make等工具都可以通过包管理器来添加和卸载 msys2的包管理器是使用的pacman,用过archlinux的应该都知道pacman了。 我们现在的目标是要集成make+gcc+gdb的一条编译工具 安装 下载地址: msys2 如果是exe,直接双击安装,如果是zip,直接解压到安装的地方即可。然后双击msys2.exe运行 [图片上传失败...(image-295493-1523187370956)] 给 MSYS2 添加中科大的源 使用过archlinux的应该会知道,pacman在安装的时候,如果源没有设置好,下载是很慢的。 需要修改的文件是: 1. \etc\pacman.d\mirrorlist.mingw32 2. \etc\pacman.d\mirrorlist.mingw64 3. \etc\pacman.d\mirrorlist.msys 简单的说 msys64\etc\pacman.d 目录下有三个文件。 mirrorlist.msys mirrorlist.mingw64 mirrorlist

Ubuntu18.04 vim8.2 Yomcompleteme clang 编译、安装及使用

南笙酒味 提交于 2020-03-10 12:16:47
简介 简介: 源码编译使用vim及其插件. 内容包含: vim的编译安装, llvm clang的编译安装, 插件youcompleteme的编译安装使用, 以及vim其他插件的使用. 搭建环境: Ubuntu18.04.4 server版(desktop版应该也适用) 环境还原方式: 坚果云上保存: .vim 文件的压缩包,以免以后换环境时都得下载, 使用时直接解压至 ~/.vim GitHub上保存: .vimrc , .clang-format , .ycm_extra_conf.py 等配置文件, 地址: https://github.com/whuwzp/vim_config 主要参考网址如下, 基本上都是参照官方方法, 而不是在博客网站上拾人牙慧: vim源码编译: https://github.com/ycm-core/YouCompleteMe/wiki/Building-Vim-from-source llvm clang编译: https://llvhttps://m.org/docs/GettingStarted.html#getting-started-with-llvm youcompleteme编译使用: https://github.com/ycm-core/YouCompleteMe#linux-64-bit 其他c++插件: https:/

php pear pecl的安装

吃可爱长大的小学妹 提交于 2020-03-10 02:34:05
pear pecl是什么就不多说了,好用,用处是很全很大的。 下面只说linux下的安装。 说明: 1.pear现在是随php版本一起发行的,就可以知道pear有多重要和强大。在编译的时候只要加上--with-pear就可以将pear编译进来了 当然如果是--without-pear大家都知道是什么意思啦。 2.上面说的是编译安装,所以任何服务器都适用啦。如果编译的时候没有安装也没有问题。官方给出的go-pear.phar文件很好用,这个 方式也貌似是官方推荐的安装方法。真的很简单和很顺手。下面就来说下这个方法了。 wget http://pear.php.net/go-pear.phar php -d suhosin.executor.include.whitelist="phar" go-pear.phar 这个地方一定要注意,开始我是按别人说的直接php go-pear.phar然后就是什么反应都没了 真是查都不知道怎么查,google一下,才知道应该要用上面的suhosin扩展开启phar文件类型 当然这里别人说还会有什么json,sqlite都是扩展的配置的问题啦,google一下就有结果。我弄了两台机器都没遇到,很顺利。 然后按照提示,下一步下一步就搞定了,在php bin的目录下就会看到 pear pecl两个东东了。至此安装完毕。 3.上面说的是官方推荐的方式

C语言编译过程总结简版

假如想象 提交于 2020-03-09 20:02:53
C语言编译过程总结详解 C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。 编译过程 编译过程又可以分成两个阶段:编译和会汇编。 编译 编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两个主要阶段: 第一个阶段是预处理阶段,在正式的编译阶段之前进行。预处理阶段将根据已放置在文件中的预处理指令来修改源文件的内容。如#include指令就是一个预处理指令,它把头文件的内容添加到.cpp文件中。这个在编译之前修改源文件的方式提供了很大的灵活性,以适应不同的计算机和操作系统环境的限制。一个环境需要的代码跟另一个环境所需的代码可能有所不同,因为可用的硬件或操作系统是不同的。在许多情况下,可以把用于不同环境的代码放在同一个文件中,再在预处理阶段修改代码,使之适应当前的环境。 主要是以下几方面的处理: (1)宏定义指令,如 #define a b 对于这种伪指令