我想在C++中編寫一個跨平臺的程序,它將在運行時加載某些模塊(共享庫)。爲此,我使用Poco C++ Libraries的ClassLoader。我用autoconf,automake和libtool編寫了一個編譯鏈。這在Linux環境中應該不會有問題,但是在Windows中會出現問題。編譯時我使用MinGW和MSYS以便能夠使用我的Makefiles。 ClassLoader使用Windows特定的LoadLibrary()函數來加載模塊,這意味着我必須將它們編譯爲DLL。在Windows上使用Libtool和LoadLibrary()的模塊
我編譯爲一個庫的類繼承了主應用程序中的另一個類。然後當我嘗試運行make時,它會抱怨很多未定義的引用,並拒絕構建共享庫。我想這是因爲這個名字被破壞。或者是因爲我無法繼承庫之外的類? (該類不包括在圖書館的來源,但頭文件被發現)
我真的不知道它會帶來多少麻煩,我堅持在MinGW + MSYS下編譯,但仍然使用的LoadLibrary()。有這方面經驗的人嗎?
我已經使用'LoadLibrary'與DLL使用MinGW/libtool構建沒有太多的麻煩。我認爲你的問題可能與C++/DLL混合有關。顯示問題的(簡短)示例代碼可能很有用。 – rodrigo
謝謝。事實證明,MinGW + LoadLibrary的組合不是問題,而是它如何鏈接。我已將所有常見類放入一個共享庫中,並將其鏈接到可執行文件和模塊。 – roggan87