misc
Damon_X
这个作者很懒,什么都没留下…
展开
-
GCC/G++选项 -Wl,--as-needed
GCC/G++提供了 -Wl,--as-needed 和 -Wl,--no-as-needed 两个选项,这两个选项一个是开启特性,一个是取消该特性。 在生成可执行文件的时候,通过 -lxxx 选项指定需要链接的库文件。以动态库为例,如果我们指定了一个需要链接的库,则连接器会在可执行文件的文件头中会记录下该库的信息。而后,在可执行文件运行的时候,动态加载器会读取文件头信息,并加载所有的链接库。在这个过程中,如果用户指定链接了一个毫不相关的库,则这个库在最终的可执行程序运行时也会被加载,如果类似这样...转载 2021-04-16 15:23:07 · 2987 阅读 · 0 评论 -
一些常用技巧
In case you know the complete path to the file and in case it is installed (maybe on a computer where it works), you can go with this dpkg cheat sheet to find out which package installs it:dpkg-query -W <pattern>— list locally known packages match.原创 2021-04-15 20:18:57 · 104 阅读 · 0 评论 -
Makefile的obj-y 和 obj-m
目标定义是Kbuild Makefile的主要部分,也是核心部分。主要是定义了要编 译的文件,所有的选项,以及到哪些子目录去执行递归操作。 最简单的Kbuild makefile 只包含一行: 例子: obj-y += foo.o 该例子告诉Kbuild在这目录里,有一个名为foo.o的目标文件。foo.o将从foo.c 或foo.S文件编译得到。 如果foo.o要编译成一模块,那就要用obj-m转载 2016-04-08 16:54:07 · 1249 阅读 · 0 评论 -
pthread_once()函数详解
在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));功能:本函转载 2016-04-21 15:47:26 · 539 阅读 · 0 评论