【发布时间】:2017-06-16 08:30:18
【问题描述】:
我正在为一个现有项目设置 CMake 构建,并已成功编译所有源 (.c) 并到达链接器阶段。
在这里我遇到了以下错误:
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: 找不到 gc-sections: 没有这样的文件或目录.
使用带有以下标志的“arm-none-eabi-gcc”完成编译:
-Wall -fdata-sections -ffunction-sections -std=gnu99 -mabi=aapcs -mcpu=cortex-m4 -mthumb -mfloat-abi=hard'
链接器使用以下标志:
-Wl,-Map=out.map -Wl,gc-sections -mabi=aapcs -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -T${LINKER_SCRIPT_PATH}
任何人都明白为什么链接器正在寻找gc_sections?
编辑:显然我错过了论点的前导连字符。正确的链接器标志当然是-Wl,--gc-sections,而不是-Wl,gc-sections。
好尴尬。
【问题讨论】:
-
Anyone understand why the linker is loooking for gc_sections?- 很可能是因为选项-Wl,gc-sections传递给了链接器。应该是--gc-sections或-Wl,--gc-sections。
标签: gcc cmake linker arm cross-compiling