前言:大多数时候自己都是在写C++程序,本文记录一下打造自己的开发环境的过程,方便以后查阅,免得某些东西记不起来的时候还要去百度找。打造的开发环境是代码在Linux服务器上(构建)编译-链接-运行,在windows环境编辑代码。 用到的工具: VMware-workstation : 虚拟机 ubu ...
分类:
其他好文 时间:
2019-09-22 12:51:41
阅读次数:
100
#ifndef 在头文件中的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时 ,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。 方法:例如要编写头文件test.h 在头文件开头写上两 ...
分类:
编程语言 时间:
2019-08-26 23:14:16
阅读次数:
114
一、在Linux中,有两种函数库,以*.so后缀命名的是动态函数库,以*.a后缀命名的是静态函数库 对于静态函数库:在编译链接时候,程序所需要的函数会从静态函数库中拷贝到执行文件中。当程序运行的时候,就不需要链接外部的函数库了。 对于动态函数库:在编译链接时,程序所需要的函数不会从动态函数库中拷贝出 ...
分类:
系统相关 时间:
2019-08-20 21:53:10
阅读次数:
91
前言 LD_PRELOAD和ld wrap都能实现不修改原始代码,替换指定函数的实现。通常我们会使用这些方法,替换如malloc)()/free()、read()/write()等函数,并在替换函数中做一些记录,以便能分析程序执行时的内存分配和IO情况。这些函数一般叫包裹函数。 LD_PRELAD ...
分类:
其他好文 时间:
2019-08-17 12:44:47
阅读次数:
108
gcc参数 -On 优化选项,告诉编译器使用第n级优化 通常,优化等级越高,运行速度越快,编译时间越长,调试越困难。因此,通常使用O2 -o file 自定义编译后的文件名 -S 生产汇编代码 -c 编译并汇编该代码 默认编译汇编链接一步到位 反汇编器 objdump -d code.c 用来查看二 ...
分类:
编程语言 时间:
2019-08-14 12:54:02
阅读次数:
123
何为动态链接库和静态链接库?它们都是共享代码的方式。动态链接使用动态链接库,动态链接允许可执行文件(.dll或.exe)在运行时调用动态链接库中的某个函数。(程序运行阶段)静态链接使用静态链接库,链接器从静态链接库获取所有被引用函数,并将这些函数加入到可执行文件中。(程序编译链接阶段)静态链接库的使 ...
分类:
其他好文 时间:
2019-07-27 18:28:34
阅读次数:
75
一、交叉工具链? 1、什么是交叉工具链? 我们已经学习过的编译器是gcc编译器,gcc可以将高级语言转换目标程序。 gcc编译器特点:在Ubuntu编译,在Ubuntu运行。 -> 在同一个平台上编译运行,这个gcc编译器又称之为本地编译。 这个gcc编译器是Ubuntu中自带,gcc所的路径:/u ...
分类:
其他好文 时间:
2019-07-18 19:56:11
阅读次数:
132
一、动态链接库(DLL) 动态链接库提供了一种方法,使进程可以调用不属于其执行代码的函数。函数的可执行代码位于一个.dll文件中,该文件包含一个或多个已被编译、链接并使用它们的进程分开存储的函数。 优点: 1.扩展了 应用程序的特性 2.可以使用多种编程语言来编写 3.简化项目的管理 二、依赖项 当 ...
分类:
其他好文 时间:
2019-07-14 22:43:12
阅读次数:
134
利用pip安装 pip install numpy pip install scikit-surprise 安装出错: 因为surprise需要microsoft Visual C++ 14.0编译,所以需要安装这个库。下载地址:链接: https://pan.baidu.com/s/1_L4Hb- ...
分类:
编程语言 时间:
2019-06-22 10:22:08
阅读次数:
482
man.c如上: test.c 如上: 将test.c与main.c转换为目标文件test.o,main.o: 将两者链接成可执行文件: 将test.o打包为动态库文件libtest.so: 将test.o打包为静态库文件libtest.a: 编译链接动态库(gcc是默认链接动态库): 编译链接静态 ...
分类:
其他好文 时间:
2019-06-16 15:49:04
阅读次数:
95