Linux
文章平均质量分 76
zsiming
Why do we fall?
展开
-
解决:Linux下C++段错误不产生core文件
在已经使用打开了core文件的基础上,运行程序产生了段错误。使用ls命令查看当前目录下的文件,还是没看见任何和.core相关的文件。如下:ulimit -cunlimited发现结果被|原创 2022-09-07 14:09:27 · 4380 阅读 · 2 评论 -
Linux下排除死锁详细教程(基于C++11、GDB)
在实际编写项目的过程中,经常涉及到多线程。多线程的程序编程很大概率会涉及到线程安全的问题,因此往往使用互斥锁来保证线程安全。然而,互斥锁的使用却经常会导致另外一个问题:死锁。所谓死锁,通俗的讲就是有两个共享资源,一个在你手上,一个在我手上。我等着你用完把另一个给我,你等我用完给你,这样相互等待就形成了死锁。所以,在这里,基于Linux的环境,使用C++11提供的多线程编程来模拟死锁,并尝试从“不知情”的角度,使用进行死锁的排查。原创 2022-09-05 14:15:26 · 2733 阅读 · 1 评论 -
Linux下Makefile操作
如:上面的例子一共有两条规则,第二条规则是生成add.o文件。但是,第一条规则生成app文件的过程中,和add.o并没有任何关系,因此第二条规则是不会执行的。如图:执行make命令之后:可以看见,make 命令之后并没有执行第二条规则。而且用ls命令查看文件发现没有add.o文件生成。写Makefile文件的过程中,可以通过定义变量、使用函数的办法来少打一些命令和文件的名称。比如,在上面的Makefile 文件中,很多.c文件都是手打的,因此,我们可以通过函数的方式来获取这些.c文件的文件名原创 2022-06-26 18:38:29 · 5194 阅读 · 0 评论 -
Linux下静态库和动态库的制作使用
首先,一个C++程序从源文件到可执行文件的需要经过:静态库和动态库主要在链接的阶段起到不同的效果。在链接阶段,静态库会将程序依赖的库文件复制一份到程序中,来保证程序可以正常运行。而动态库则是将库文件加载到内存中供程序使用。假设我的程序中有四个算法,我想打包成一个静态库:其中,add.c 、div.c、mult.c、sub.c是需要制作的库的源文件。head.h是分发给用户的头文件,用户拿到头文件就能知道算法的接口是怎么样子的,以及如何使用。第一步:将add.c 、div.c、mult.c、sub.c源文原创 2022-06-11 16:23:26 · 226 阅读 · 0 评论