我对嵌入式系统不感兴趣。我正在使用一个使用ARM9的套件TS-7390。 我设法为它编译了一个应用程序。我的问题是如何使用共享库进行编译。我需要在主机上安装这个库吗?
答案 0 :(得分:3)
这取决于共享库的使用方式。如果使用库编译应用程序,就像共享库一直链接一样,是的,您需要在主机上使用它。如果共享库是通过dlopen
动态加载的,则主机上不需要它。在这两种情况下,您还需要在目标上使用该库。
答案 1 :(得分:2)
简而言之:是的。
让我解释一下原因。设置交叉编译环境时,需要同时具有头文件和库,因为在链接时,编译器会检查是否已解析所有符号。
您可以想象,只要您的程序不使用libc,交叉编译器就不够了。在这种情况下,您还需要一个拥有所有必需文件(标题,库等)的地方。由于处理所有依赖项可能非常耗时,因此通常最好使用某种工具或发行版为您执行此操作。
例如,我使用OpenEmbedded,这需要一些时间来学习,但是当你必须处理库时可以帮助你很多。
答案 2 :(得分:1)
在交叉编译应用程序之前,还需要交叉编译共享库。