我已經使用windows主機上使用RVDS編譯器的* .o目標代碼文件(C源代碼)創建了共享庫(* .so)。如何從共享庫中導出符號
我這個共享對象鏈接與一個應用程序(使用Linux主機上ARM目標GCC),並獲得一個可執行文件,在運行產生分段錯誤。(我知道我必須調試它!)
代替創建共享庫,如果我使用相同的源文件創建一個靜態庫,然後鏈接到應用程序,然後執行該應用程序,它可以正常工作。
所以我的問題是: -
我是否需要使用一些結構,從而使得它工作正常出口(出口到應用功能)符號或其它任何標誌,明確地說,在我的源文件鏈接時與應用程序?需要什麼,我該怎麼做?
共享庫是如何工作的?也就是說,函數將被加載和運行的地址將在創建庫時給出庫中給出。應用程序(main())如何解析要執行庫函數的地址?
靜態庫是如何工作的,即靜態庫的情況下,這個地址是如何規定和解決的?
謝謝。
@Jonathan:我沒有使用dlopen加載共享庫()調用。 – goldenmean 2009-05-25 11:53:20