【发布时间】:2015-07-22 04:53:19
【问题描述】:
当使用 g++ 编译时,它会为几乎每个函数创建一个额外的部分。
这发生在带有elf64 可执行文件的linux 上。
举例:
text._ZN12MemoryMapper11SetUpMemoryEP11KernelStart
我如何告诉 g++ 在 .text 上发出所有代码,所以只有一个 .text 部分
在没有 -ffunction-sections 的情况下会发生这种情况
这些部分甚至在之后仍然存在
objcopy -S file.elf striped
================================================ ===
额外信息:
CXXFLAGS = -g -O0 -ffreestanding -fno-rtti -fno-exceptions -fno-asynchronous-unwind-tables -std=c++11 $(INCLUDES)
g++ version = gcc (GCC) 5.1.0
【问题讨论】:
-
如果省略
-g(不添加调试符号)会怎样?