相关疑难解决方法(0)

如何找出从共享对象导出的所有符号?

我有一个共享对象(DLL).如何找出从中导出的所有符号?

linux shared-libraries

123
推荐指数
7
解决办法
16万
查看次数

如何从共享库中导出符号

我使用Windows Host上的RVDS编译器*.so使用*.o目标代码文件(C源代码)创建了一个共享库().

我将此共享对象与应用程序(gcc在Linux主机上用于ARM目标)链接并获取可执行文件,该文件在运行时会生成分段错误.(我知道我必须调试它!)

如果我创建一个具有相同源文件的静态库,然后与应用程序链接,然后执行应用程序,它可以正常工作,而不是创建共享库.

所以我的问题是:

  1. 我是否需要使用某些结构在源文件中显式导出符号(导出到应用程序的函数)或任何其他符号,以便在与应用程序链接时正常工作?需要什么,我该怎么做?

  2. 共享库如何工作?即,在创建库时,将在库中给出将加载和运行函数的地址.application(main())如何解析要执行库函数的地址?

  3. 静态库如何工作,即如何在静态库的情况下解决规范和解决问题?

linux arm shared-libraries cross-compiling rvds

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

标签 统计

linux ×2

shared-libraries ×2

arm ×1

cross-compiling ×1

rvds ×1