2012-02-08 59 views
1

我很喜欢嵌入式系统。我正在使用一个套件,TS-7390,它使用了ARM9。 我设法为它编译一个应用程序。我的问题是我如何使用共享库进行编译。我需要在主机上有图书馆吗?使用共享库进行交叉编译

回答

3

这取决于共享库的使用方式。如果应用程序与库一起编译,就好像共享库始终链接一样,是的,您需要在主机上使用它。如果通过dlopen动态加载共享库,则主机上不需要它。在这两种情况下,你也需要目标库。

1

在交叉编译应用程序之前,您还需要交叉编译共享库。

2

简而言之:是的。

让我解释一下为什么。当您设置交叉编译环境时,您需要使头文件和库都可用,因为在链接编译器时会检查所有符号是否已解析。

正如您所想象的,只要您的程序不使用libc,交叉编译器是不够的。在这种情况下,您还需要一个拥有所有必需文件(标题,库等)的地方。由于处理所有依赖关系可能非常耗时,因此通常最好使用某种工具或发行版为您执行此操作。

例如,我使用OpenEmbedded,这需要一点时间才能学会,但在需要处理库时可以帮助您很多。