首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有操作系统的情况下构建和链接临时IP库

在没有操作系统的情况下构建和链接临时IP库
EN

Stack Overflow用户
提问于 2014-04-14 07:55:41
回答 1查看 120关注 0票数 0

我对嵌入式开发非常陌生,对于在嵌入式设备上构建和链接IP库,我有一个问题,或者更多的反馈。至于它的价值,下面是使用福克斯G20 V板与爱特梅尔AT91SAM9G20处理器,没有操作系统。我做了一些研究,我认为我自己在董事会上建立和连接图书馆的方式是以下两种选择之一。

选项1:第一个选项是编译整个库( .c文件),以便以.a文件的形式构建一个静态库。然后,在将其加载到设备上之前,我可以将创建的静态库与我的应用程序代码链接起来。当然,必须对设备驱动程序进行编程,以便库能够在平台上工作(帮助被发现为这里)。第一个选项是使用Linux机器。对于第一个选项,为了加载与我的应用程序代码链接的静态库,需要使用"scp“吗?

选项2:第二个选项是编译库并将其直接链接到我的应用程序代码,而不需要经过中间的静态库。但是,由于我的平台不包含操作系统,为了编译和链接,我需要安装一个批准GCC编译器(如果有人有这种安装的任何线索,这也会非常有用)。然而,我对第二个选项并不熟悉,但我被告知实现起来更容易,所以如果有人想知道如何实现它,这将是非常有帮助的。

我希望得到一些反馈意见,以及关于这些选择对你来说是否正确的答案,并确保我没有提到一些虚假的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-14 08:06:29

这些方案之间没有真正的区别。在任何情况下,主机工具链都负责创建一个二进制文件,该文件包含一个完全链接的可执行文件,没有外部依赖关系,因此无论哪种方式都需要交叉编译器,而且只编译uIP和应用程序的其他部分确实是最简单的。

工具链通常有交叉编译器(如果使用gcc,应该命名为arm-eabi-gccarm-none-eabi-gcc)、交叉链接器(arm-eabi-ld)、交叉归档器(arm-eabi-ar)等。您可以使用这些工具而不是本机工具。对于Debian,您可以在测试/不稳定中找到不使用操作系统的ARM目标交叉编译器

是否构建静态库

代码语言:javascript
复制
arm-eabi-gcc -c uip.c
arm-eabi-ar cru uip.a uip.o
arm-eabi-ranlib uip.a
arm-eabi-gcc -o executable application.c uip.a

或直接链接

代码语言:javascript
复制
arm-eabi-gcc -c application.c
arm-eabi-gcc -c uip.c
arm-eabi-gcc -o executable application.o uip.o

或者直接编译和链接

代码语言:javascript
复制
arm-eabi-gcc -o executable application.c uip.c

没什么大不了的。

如果您使用集成的开发环境,通常只添加uip.c作为源文件是最简单的。

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

https://stackoverflow.com/questions/23054842

复制
相关文章

相似问题

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