dlopen

    0熱度

    1回答

    我做一個簡單的插件框架,我想能夠dlopen()的共享庫(即插件),檢查和使用任何工廠的功能是提供並最終dlclose()它,不留痕跡。 我的工廠制度是微不足道的,只有一個導出的函數返回一個指向一個共同的基類。爲了檢查插件是否已正確卸載,我有一個靜態對象,它的析構函數從主程序中設置了一個bool。 這裏的主要程序: // dltest.cpp follows. Compile with g++ -

    0熱度

    1回答

    不幸的是,我不能發佈這個源代碼,但我會盡量設置它,盡我所能。我有一個dynamic_cast未能轉換爲派生類類型的情況,我知道它應該成功(即我知道實例的實際類型)。 另外一個堆分配的對象的typeid不等於一個堆棧分配對象的typeid! IE, Foo mstack; Foo*mheap = new Foo(); typeid(mstack) == typeid(*mheap); // re

    1熱度

    2回答

    我在用dlopen加載的共享對象(代碼)中。我想知道加載調用的標誌。我無法訪問加載程序(代碼) - 例如它可能是一個腳本解釋器 - 但我必須創建具有相同標誌的後續dlopen調用。 我該怎麼做?

    3熱度

    2回答

    我想寫一個抽象來加載Windows和Linux上的動態庫。雖然在Windows平臺上一切順利,我得到一個SIGSEGV當我打電話dlopen: // File: Main.cs using System; using System.Runtime.InteropServices; namespace DlopenTest { class MainClass {

    0熱度

    2回答

    下午好, 我真的很感激,如果任何人都可以,請給一個什麼可以在涉及的dlopen以下情形是發生的線索。我想通過調用dlopen(「/ system/lib/libmedia.so」,RTLD_LAZY)加載Android系統的庫libmedia.so;從一個庫(libA)靜態鏈接到一個上部庫(libB)與ndk。這最後一個庫是由Java應用程序通過JNI調用的。 的問題是,這個調用dlopen的,老

    10熱度

    1回答

    一些精心調試後,我發現,根植於制度框架加載馬車蘋果捆在我的應用程序中的錯誤: /System/Library/CoreServices/MLTEFile.bundle 我深信,我不是從這個捆綁的服務中受益,並懷疑許多應用程序是。事實上,我通過研究Xcode本身瞭解到,捆綁包不能被加載到Xcode的內存空間中,因爲捆綁包不是垃圾收集兼容的。 所以理想情況下,我想阻止將此捆綁包加載到我的應用中。解

    2熱度

    1回答

    我一直在使用OpenCL最近在我的Ubuntu 12.04機器上玩弄OpenCL。當我撥打cl::Platform::get時,我得到一個-1001的錯誤代碼。經過一番研究後,我發現當c調用getPlatformIDs找不到有效的平臺時會發生這種情況,並且在/ etc/OpenCL/vendors /目錄中沒有.icd文件時,或者在執行( s)所引用的文件無法打到dlopen。 但是,我已經測試了

    0熱度

    1回答

    我正在使用MPI創建並行進程的項目,每個進程使用dlopen()加載已作爲共享對象庫構建的模塊。我正在編寫的一個模塊使用第三方庫(HDF)。當我運行該程序,dlopen的拋出一個錯誤: dlopen的失敗:/home/jwomble/QTProjects/Sur​​rogateModule/libsurrogate.so:未定義的符號:H5T_NATIVE_INT32_g 未定義的符號在HDF庫。

    1熱度

    2回答

    我可以在一個進程中的庫中獲得通知嗎,每當在同一進程中使用linux上的dlopen()函數從任何其他庫加載新庫時? 謝謝。

    2熱度

    1回答

    我在Linux上(Ubuntu 12.04,gcc 4.6.3),試圖彎曲dlopen /接近我的意志,以便製作一個基於插件的應用程序,可以在必要時重新加載插件(例如,如果它們是重新編譯)。 基本理論很簡單:dlopen插件;使用它,跟蹤所有正在使用的符號。當需要重新加載時,清理所有符號並關閉插件。 我一起扔一個簡單的演示應用程序,「TEST.CPP」: #include <dlfcn.h> #