gcc
文章平均质量分 74
brahmsjiang
这个作者很懒,什么都没留下…
展开
-
从 typedef struct T *T 看C语言的命名空间
最近在看《C语言接口与实现》一书. 第二章提到, 一个ADT(抽象数据类型)就是一个借口, 其标准范例是栈. 其接口定义如下所示:众所周知宏定义的作用仅仅是一个替换而已, 因此typedef这句话实际为:按照书上说法, Stack_T对外接口表现为一个“不透明指针”. 我起初理解是, 以后凡是看到Stack_T的地方实际指代的都是指针Stack_T*. 乍看起来这种理解没错, 但看一下栈的实现后, 便发生了理解不能的事情:这里#define 指令又把T定义为Stack_T的缩写. 问题来了原创 2022-07-02 17:30:35 · 597 阅读 · 0 评论 -
gcc在ELF链接多级so时, 探究-l -L -Wl,-rpath的作用
首先声明下多级so是指, 该so依赖其他so.比如libtest.so依赖libtest1.so的方法; 此外在此例中, 我们有名为test_xxx的ELF文件需要链接libtest.so, 以使用libtest.so的方法:公司项目的编译系统中, 遇到个未引起注意而不得其解的现象. 即编译libtest.so时, 不用指出所依赖的libtest1.so也可以编译成功. 但是编译/链接test_xxx.out时, 必须显式依赖所有的so, 包含一级的libtest.so 和 二级的libtest1.原创 2022-06-16 16:00:26 · 429 阅读 · 0 评论 -
gcc请求显示或关闭warnings
gcc可以用' -W'开始的选项请求许多特定的警告. 反之, 每个特定的警告选项也有一个以“- wno -”开头的否定形式来关闭警告; 具体选项参见:Warning Options - Using the GNU Compiler Collection (GCC)其中, 2个选项值得注意:-w 关闭所有warning, 而 -Werror 将所有warning视为error.前者-w关闭所有warning自然需要慎用.后者-Werror有些公司项目为了引起对warning的重视, 默认开启即不允许有原创 2022-06-06 17:11:01 · 4085 阅读 · 0 评论