聯我創建支持在運行時動態地加載的DLL形式模塊的應用的應用。該代碼以下述方式被佈置:鏈接DLL以靜態庫並將其加載到針對相同的靜態庫
芯 - 靜態庫
這具有一種機制來加載共享庫和調用返回一個新的模塊對象「創建」功能(用途一個共享標題)。
模塊共享庫(針對核心靜態庫鏈接)
該模塊使用共享模塊頭,並且還從核心庫(因此爲什麼它被抵靠芯庫鏈接)使用其他類。它被構建爲包含來自靜態庫的所有符號。
測試應用可執行文件(與核心靜態庫鏈接)
我越來越時髦,和看似零星的行爲。他們總是結束在訪問衝突,但似乎我很明確設置(整數),其成員變量將在後面的功能,打印出的垃圾(我已經證實,他們沒有被更早刪除)。這隻曾經似乎如果他們的動態庫加載發生(即使我從來沒有調用創建功能)。
我的主要問題是,共享庫中的符號是否會與可執行文件中的符號發生衝突(因爲它們來自同一靜態庫),並且即使它們完全相同也會導致問題靜態庫?
你在什麼操作系統上? – Laserallan 2011-12-17 19:17:53
我目前在OS X上看到這一點,但它也編譯在Linux(Ubuntu)和Windows上。現在我將在Linux上嘗試此操作以查看是否發生了相同的事情。 – drewag 2011-12-17 19:24:56
嘗試在valgrind下運行您的程序以更好地診斷它。 – 2011-12-17 20:02:26