相关疑难解决方法(0)

我怎么知道代码中的哪些部分从未使用过?

我有遗留的C++代码,我应该从中删除未使用的代码.问题是代码库很大.

如何找出从未调用/从未使用过的代码?

c++ optimization dead-code

310
推荐指数
8
解决办法
5万
查看次数

查询gcc的-ffunction-section和-fdata-sections选项

以下在GCC页面中提到的功能部分和数据部分选项:

-ffunction-sections
-fdata-sections
Run Code Online (Sandbox Code Playgroud)

如果目标支持任意节,则将每个函数或数据项放入输出文件中的自己的部分.函数名称或数据项名称确定输出文件中节的名称.在链接器可以执行优化以改善指令空间中引用的位置的系统上使用这些选项.大多数使用ELF对象格式的系统和运行Solaris 2的SPARC处理器都具有这种优化的链接器.AIX可能会在将来进行这些优化.

只有在获得重大好处时才使用这些选项.指定这些选项时,汇编器和链接器将创建更大的对象和可执行文件,并且速度也会更慢.如果指定此选项,则无法在所有系统上使用gprof,如果同时指定了此选项和-g,则可能无法进行调试.

我的印象是这些选项有助于减少可执行文件的大小.为什么这个页面会说它会创建更大的可执行文件?我错过了什么吗?

c size optimization linker gcc

28
推荐指数
4
解决办法
3万
查看次数

如何编译c程序,使其不依赖于任何库?

似乎一个hello world程序依赖于几个库:

libc.so.6 => /lib64/libc.so.6 (0x00000034f4000000)
/lib64/ld-linux-x86-64.so.2 (0x00000034f3c00000)
Run Code Online (Sandbox Code Playgroud)

我如何静态链接所有东西?

c linux gcc static-linking

3
推荐指数
1
解决办法
2806
查看次数

标签 统计

c ×2

gcc ×2

optimization ×2

c++ ×1

dead-code ×1

linker ×1

linux ×1

size ×1

static-linking ×1