小编lap*_*oge的帖子

在 gcc 中使用 `-fdata-sections` 和 `-ffunction-sections` 这两个选项的目的是什么?

正如手册页所说:

\n
\n

-ffunction-sections
\n-fdata-sections
\n\xc2\xa0\xc2\xa0
如果目标支持任意部分,则将每个函数或数据项放入 \n\xc2\xa0\xc2\xa0 输出文件中自己的部分中。\
n\xc2\xa0\xc2\xa0 函数的名称或数据项的名称决定
输出文件中节的名称。

\n
\n

编译此代码后:

\n
...\n\nint bss_var_1 = 0;\nint bss_var_2;\nint bss_var_3;\n\nint data_var_1 = 90;\nint data_var_2 = 47;\nint data_var_3[128] = {212};\n\nint foo() {\n    printf("hello, foo()\\n");\n}\n\nint func() {\n    printf("hello, func()\\n");\n}\n\nint main(void) {\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我有main.o进入了我的文件夹,然后列出了它的所有部分,它确实将每个函数和数据放入了自己的部分中,但是为什么开发人员需要这两个选项?(例如,完成工作的任何特殊用途)

\n
$ readelf build/main.o -S\nThere are 34 section headers, starting at offset 0xeb0:\n\nSection Headers:\n  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al\n  [ 0]                   NULL            00000000 000000 000000 00      0   0 …
Run Code Online (Sandbox Code Playgroud)

c linux embedded gcc

4
推荐指数
1
解决办法
790
查看次数

标签 统计

c ×1

embedded ×1

gcc ×1

linux ×1