相关疑难解决方法(0)

什么是--start-group和--end-group命令行选项?

这些命令行选项的目的是什么?请帮助破译以下命令行的含义:

-Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib
Run Code Online (Sandbox Code Playgroud)

显然它与链接有关,但GNU手册很安静,究竟是分组的意思.

linker gcc ld

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

未定义的_sbrk引用

我遇到了_sbrk的问题.在编译的链接阶段,我使用下面的命令链接我的对象,我得到未定义的引用_sbrk.

arm-none-eabi-ld -static -T linkerscript.ld -o exe timer_example.o /home/ziga/projects/cs_lite/arm-none-eabi/lib/libc.a /home/ziga/projects/cs_lite/lib/gcc/arm-none-eabi/4.5.1/libgcc.a
Run Code Online (Sandbox Code Playgroud)

我正在为arm926ej-s编译并在ARM模式下,所以我想我选择了正确的multilib(libc.a和libgcc.a),它位于home/ziga/projects/cs_lite/arm-none-eabi/lib /文件夹中.

我一直在网上搜索_sbrk函数,它是某种内存管理调用,它不包含在标准C库中,因为它依赖于微处理器.所以我必须自己编写_sbrk函数吗?我该怎么做?你有arm926ej-s的例子吗?编写此函数后,我打算将其编译为目标文件,并将其与其他对象库连接在一起.

亲切的问候,Ziga.


我解决了这个问题并将在这里发布解决方案,所以我回馈社区.函数_sbrk位于ARM的NXP CDL包中.包可供下载(链接适用于所有不熟悉此功能的人):http: //www.lpclinux.com/Downloads/WebHome在子文件夹CDL_v005/csps/lpc313x/bsps/ea3131/source中,您将找到命名的源文件libnosys_gnu.c应该添加到项目中并编译到目标文件,之后链接到可执行文件以及其他对象和库.

祝愿和成功.

c gcc arm sbrk

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

标签 统计

gcc ×2

arm ×1

c ×1

ld ×1

linker ×1

sbrk ×1