linux编译

Go语言环境配置

ⅰ亾dé卋堺 提交于 2019-11-25 23:09:45
下载安装 国内的Go下载站点,根据自己的系统选择对应的版本进行下载安装: https://studygolang.com/dl Go的安装方式除了源码安装,其他的都相当简单,就不过多的赘述了。 环境变量 下面介绍下Go语言中需要设置的一些环境变量,具体如何设置这些环境变量,请自行搜索设置方式。 另外系统的不同,设置的方式也不相同。 GOROOT GOROOT 是Go语言的安装目录。 在 Windows 中, GOROOT 的默认位置是 C:/go ,而在 Mac OS 或者 Linux 中 GOROOT 的默认位置是 /usr/local/go ,如果Go安装在其他目录,而需要将 GOROOT 的位置修改为对应的目录。 另外, GOROOT/bin 下包含Go为我们提供的工具链,因此应该将 GOROOT/bin 配置到环境变量 PYTH 中,方便我们在全局中使用Go的工具链。 GOPATH GOPATH 是Go语言的工作目录。 go install/go get 和 go的工具等会用到 GOPATH 环境变量。 GOPATH 是作为编译后二进制的存放目的地和import包时的搜索路径。 GOPATH 主要包含三个目录: bin 、 pkg 、 src bin:主要存放可执行文件。 pkg:存放编译好的库文件, 主要是*.a文件。 src:下主要存放go的源文件。

Linux 环境下 gcc 链接库 编译、链接(概览) 以及 自动化工具Makefile的编写

假装没事ソ 提交于 2019-11-25 21:09:45
个人博客首页(点击查看详情) -- https://blog.51cto.com/11495268 1、简介 程序编译一般需要经预处理、编译、汇编和链接,在实际应用中,有些公共代码需要反复使用,就把这些代码编译成为 "库" 文件,本文 主要 描述 Linux 平台下 库文件的 创建 和 链接 相关操作(既然都看 这么底层的内容了,相信 也有一定的基础,所以本文 对相关命令 也不会进行详细解释) 备注: linux平台下,静态链接库是以 .a 的后缀文件,动态链接库是以 .so 的后缀文件 widows平台下,静态链接库是以 .lib 的后缀文件,动态库文件是以 .dll 的后缀文件 2、库文件 库是写好的 现有的、成熟的 一种可执行、可以复用代码的二进制形式(注,其本身不可执行),可以被操作系统载入内存执行;分为 静态链接库 和 动态链接库 2.1 静态库 2.1.1 简介 静态链接库可以简单看成一组目标文件.o 的集合,即很多目标文件经过压缩打包后形成的一个文件 2.1.2 原理 链接器将从 静态(链接)库 取得所需的代码,复制到生成的可执行文件 2.1.3 特点 静态库对函数库的链接是放在程序编译时期完成 程序在运行时对函数库再无瓜葛(因为所有相关的目标文件和牵涉到的函数库被链接合成一个可执行文件) 浪费空间和资源(因为所有相关的目标文件和牵涉到的函数库被链接合成一个可执行文件

Linux g++ 链接库 编译、链接 以及 Makefile编写

為{幸葍}努か 提交于 2019-11-25 21:09:05
个人博客首页(点解查看详情)-- https://blog.51cto.com/11495268 1、简介 程序编译一般需要经预处理、编译、汇编和链接,在实际应用中,有些公共代码需要反复使用,就把这些代码编译成为 "库" 文件,本文 主要 描述 Linux 平台下 库文件的 创建 和 链接 相关操作(既然都看 这么底层的内容了,相信 也有一定的基础,所以本文 对相关命令 也不会进行详细解释) 备注: linux平台下,静态链接库是以 .a 的后缀文件,动态链接库是以 .so 的后缀文件 widows平台下,静态链接库是以 .lib 的后缀文件,动态库文件是以 .dll 的后缀文件 2、库文件 库是写好的 现有的、成熟的 一种可执行、可以复用代码的二进制形式(注,其本身不可执行),可以被操作系统载入内存执行;分为 静态链接库 和 动态链接库 2.1 静态库 2.1.1 简介 静态链接库可以简单看成一组目标文件.o 的集合,即很多目标文件经过压缩打包后形成的一个文件 2.1.2 原理 链接器将从 静态(链接)库 取得所需的代码,复制到生成的可执行文件 2.1.3 特点 静态库对函数库的链接是放在程序编译时期完成 程序在运行时对函数库再无瓜葛(因为所有相关的目标文件和牵涉到的函数库被链接合成一个可执行文件) 浪费空间和资源(因为所有相关的目标文件和牵涉到的函数库被链接合成一个可执行文件)

GNU开发工具——CMake快速入门

自作多情 提交于 2019-11-25 20:21:39
GNU开发工具——CMake快速入门 一、CMake简介 不同Make工具,如GNU Make、QT的qmake、微软的MS nmake、BSD Make(pmake)等,遵循着不同的规范和标准,所执行的Makefile格式也不同。如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用Make工具,必须为不同的Make工具编写不同的Makefile。 CMake是一个比Make工具更高级的编译配置工具,是一个跨平台的、开源的构建系统(BuildSystem)。CMake允许开发者编写一种平台无关的CMakeList.txt文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化Makefile和工程文件,如:为Unix平台生成Makefile文件(使用GCC编译),为Windows MSVC生成projects/workspaces(使用VS IDE编译)或Makefile文件(使用nmake编译)。使用CMake作为项目架构系统的知名开源项目有VTK、ITK、KDE、OpenCV、OSG等。 二、CMake管理工程 在Linux平台下使用CMake生成Makefile并编译的流程如下: A、编写CMake配置文件CMakeLists.txt B、执行命令cmake PATH生成Makefile,PATH是CMakeLists.txt所在的目录。 C

[nghttp2]压测工具,源码编译并进行deb打包过程

大兔子大兔子 提交于 2019-11-25 20:00:09
编译环境:deepin 15.11桌面版 nghttp2下载地址: https://github.com/nghttp2/nghttp2 环境要求 emm只能在类Linux环境才能完整编译,想在Windows里面使用只能编译成dll,再进行引用开发使用,不能直接搞。 构建libnghttp2库需要一下包: pkg-config >= 0.20 要构建和运行单元测试曾想,需要以下包: cunit>=2.1 要构建文档,你需要安装: sphinx(http://sphinx-doc.org) 如果你只需要libnghttp2库,那么上面的软件包就是你需要安装的,使用 --enable-lib-only ,以确保只有libnghttp2构建。这避免了与构建捆绑应用程序相关的潜在的构建错误。 要构建并运行应用程序( nghttp , nghttpd , nghttpx 和 h2load 在) src 目录,需要以下包: OpenSSL> = 1.0.1 libev> = 4.11 zlib> = 1.2.3 libc-ares> = 1.7.5 ALPN支持需要OpenSSL>=1.0.2(2015年1月22日发布),可以使用LibreSSL>=2.2.0代替OpenSSL,但在编写时OpenSSL比LibreSSL具有更多功能。 要启用 -a 选项(从下载的资源获取链接的资源)