首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何链接RTEMS动态加载的应用程序?

如何链接RTEMS动态加载的应用程序?
EN

Stack Overflow用户
提问于 2018-09-17 15:20:07
回答 1查看 265关注 0票数 1

我使用RTEMS 4.11和内置的POSIX函数动态地将程序映像加载到内存中。使用以下代码在RTEMS中加载程序映像:

代码语言:javascript
复制
void* handle = dlopen(prog_name, RTLD_NOW | RTLD_GLOBAL);
if (!handle)
    printf("dlopen: %s\n", dlerror());

我使用RTEMS构建的GCC编译内存文件系统中位于prog_name的对象。

我应该使用哪个命令行来正确编译一个C文件以便以这种方式加载?

作为参考,我尝试了以下命令行选项,但得到了一个错误:

代码语言:javascript
复制
$ /opt/rtems-4.11/bin/sparc-rtems4.11-gcc test.c -c -o test.elf -shared -fPIC -nostdlib
$ # dlopen: global symbol not found: _GLOBAL_OFFSET_TABLE_

$ /opt/rtems-4.11/bin/sparc-rtems4.11-gcc test.c -o test.elf -fPIC -shared -nostdlib
$ # dlopen: ELF file contains program headers

我还尝试了其他一些组合,也使用了rtems-ld程序。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 07:01:49

事实证明,唯一重要的选项是-c (编译和组装,但不链接)。

代码语言:javascript
复制
$ /opt/rtems-4.11/bin/sparc-rtems4.11-gcc test.c -c -o test.elf
$ # this now works

信用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52371011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档