
linux
Ziven-Hu
菜鸟,加油!
展开
-
gcc编译动态和静态链接库
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 第1步:编辑得到举例的程序--hello.c和test.c;转载 2018-01-11 11:49:35 · 142 阅读 · 0 评论 -
linux利用gdb和gdbserver调试程序
参考博客: https://www.cnblogs.com/lidabo/p/4499011.html https://www.cnblogs.com/veryStrong/p/6240769.html http://www.cnblogs.com/veryStrong/p/6240775.html (GDB调试...原创 2018-03-16 15:12:45 · 486 阅读 · 0 评论 -
linux安装CodeBlocks
最简单的办法,只需三步搞定sudo apt-get install build-essentialsudo add-apt-repository ppa:pasgui/ppasudo apt-get install codeblocks原创 2018-03-16 10:17:27 · 1786 阅读 · 0 评论 -
Linux 下c获取当前时间(精确到秒和毫秒或者微秒)
获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 sys/time.h 。函数说明int gettimeofday (struct timeval * tv, struct timezone * tz)1、返回值:该函数成功时返回0,失败时返回-1 2、参数 struct timeval{ long tv_sec; //秒 long tv_use...转载 2018-03-09 12:20:39 · 4238 阅读 · 0 评论 -
Linux压缩解压文件夹、文件——tar
常用命令:单个文件压缩打包 tar czvf my.tar file1多个文件压缩打包 tar czvf my.tar file1 file2,...单个目录压缩打包 tar czvf my.tar dir1多个目录压缩打包 tar czvf my.tar dir1 dir2解包至当前目录:tar xzvf my.tar原创 2018-01-30 14:43:50 · 1396 阅读 · 0 评论 -
"undefined reference to" 问题汇总及解决方法
转载地址: https://segmentfault.com/a/1190000006049907?utm_source=tuicool&utm_medium=referral在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按转载 2018-01-30 09:32:49 · 35315 阅读 · 1 评论 -
在Linux中静态库.a和动态库.so 的创建和使用
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为转载 2018-01-29 16:17:43 · 198 阅读 · 0 评论 -
静态库链接动态库时,如何使用该静态库
转自:http://blog.youkuaiyun.com/newchenxf/article/details/51735600网上有各种静态库的创建&使用的例子,但都是超级简单的例子,比如,静态库,就直接来个printf(),就完事了! 其实,实际使用时,静态库会复杂很多,比如会调用很多其他的动态库。 下图就是个例子: 假设libXXX.a用了libpthread转载 2018-01-26 11:43:04 · 293 阅读 · 0 评论 -
gcc/g++ 链接库的编译与链接
程序编译一般需要经预处理、编译、汇编和链接几个步骤。在实际应用中,有些公共代码需要反复使用,就把这些代码编译成为“库”文件。在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态(链接)库,其特点是可执行文件中包含了库代码的一份完整拷贝,缺点是被多次使用就会多份冗余拷贝。还有一种库,就是程序在开始运行后调用库函数时才被载入,这种库独立于现有的程序,其本身不可执行,但转载 2018-01-16 20:41:14 · 538 阅读 · 0 评论 -
Linux下gcc编译中关于头文件与库文件搜索路径相关问题
如何指定 GCC 的默认头文件路径网上偶搜得之,以之为宝:) 原地址: http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要用到其他的库转载 2018-01-15 20:52:31 · 359 阅读 · 0 评论 -
"undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相转载 2018-01-05 16:14:49 · 650 阅读 · 0 评论 -
undefined reference to错误的解决方法
Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找由 环境变量 LIBRARY_PATH 指转载 2018-01-05 16:13:29 · 2168 阅读 · 0 评论 -
linux环境变量
Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。 ~/.profile : 在登录时用到转载 2018-01-05 09:39:30 · 176 阅读 · 0 评论 -
linux命令和文件查找之which、whereis、locate、find的特点和区别
linux下的查找命令有很多,常用的有which、whereis、locate、find。平时在网上搜索一些教程的时候,经常会有让使用这四条命令中的一条去查找一些东西,但是经常这次说用which,下次说用whereis,既然都是查找,为什么要用到这么多种命令?实在是很让人发晕啊。所以今天特意写一篇文章来分析下这三者的特点和区别。 1、which 这条命令主要是用转载 2018-01-05 09:35:38 · 215 阅读 · 0 评论 -
生成可执行文件过程
C语言编译全过程 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、转载 2018-01-13 17:42:11 · 977 阅读 · 0 评论 -
C++静态库与动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库转载 2018-01-11 14:47:27 · 173 阅读 · 0 评论 -
linux下添加动态库链接的方法
Linux共享库路径配置 Linux下找不到共享库文件的典型现象为明明已经安装某个软包(如libnet,MySQL),编译连接可以正常进行,但是在运行时出现如“error while loading shared libraries: libnet.so.1:cannot open shared object file :No such file or directory”的错误提示。 原因是...转载 2018-03-16 22:45:20 · 976 阅读 · 0 评论