我已经使用windows主机上使用RVDS编译器的* .o目标代码文件(C源代码)创建了共享库(* .so)。如何从共享库中导出符号
我这个共享对象链接与一个应用程序(使用Linux主机上ARM目标GCC),并获得一个可执行文件,在运行产生分段错误。(我知道我必须调试它!)
代替创建共享库,如果我使用相同的源文件创建一个静态库,然后链接到应用程序,然后执行该应用程序,它可以正常工作。
所以我的问题是: -
我是否需要使用一些结构,从而使得它工作正常出口(出口到应用功能)符号或其它任何标志,明确地说,在我的源文件链接时与应用程序?需要什么,我该怎么做?
共享库是如何工作的?也就是说,函数将被加载和运行的地址将在创建库时给出库中给出。应用程序(main())如何解析要执行库函数的地址?
静态库是如何工作的,即静态库的情况下,这个地址是如何规定和解决的?
谢谢。
@Jonathan:我没有使用dlopen加载共享库()调用。 – goldenmean 2009-05-25 11:53:20