我正在爲應用程序編寫插件。應用程序將使用dlopen()
加載插件。該平臺是Fedora Linux 11.我擁有應用程序的所有源代碼。如何鏈接通過dlopen插入應用程序的插件()
我已經成功地將我的代碼添加到應用程序中,並且鏈接正常,因爲整個應用程序一次被鏈接。但是,最終我希望我的代碼成爲一個單獨的插件。
我在將代碼構建爲插件時遇到了問題。我將其構建爲共享(.so)庫。我的代碼自然是指應用程序中的符號,所以我需要使用g++
-L
和-l
選項指定插件鏈接到的庫。但是,接受我的插件的應用程序是一個可執行文件,而不是一組.so庫。
我在這裏錯過了一些基本點。我如何鏈接我的插件?
請注意,我仍然試圖構建我的插件 - 我還沒有嘗試使用dlopen()
加載它。
解答:謝謝大家的回答。我使用了nemo建議的--just-symbols方法,它效果很好。謝謝!
當你試圖鏈接到另一個文件時,我不認爲你需要'-L'和'-l'選項,只是'g ++ -o foo foo.cc bar'。 – sarnold 2011-05-31 20:45:45
你爲什麼使用Fedora 11? – alternative 2011-05-31 20:58:08