dlopen

    0熱度

    1回答

    我想寫我自己的MySQL存儲引擎,它使用鍵值存儲作爲後端。 我現在寫了我的第一個版本,它實現了強制性部分,我能夠編譯,鏈接和安裝我的MySQL源實例。這樣做之後,我試着在mysql控制檯用下面的命令來加載我的新插件: install plugin ramcloud soname 'ha_ramcloud.so'; 我得到的錯誤是: ERROR 1126 (HY000): Can't open

    4熱度

    2回答

    是否有可能在發生時捕獲未解析的符號引用,以便調用函數以嘗試根據需要解析符號?或者是否有可能在運行時將新符號添加到動態符號表中,而不創建庫文件並將其刪除?我在GNU/Linux上使用GCC。 (移植到其它Unix系統將是很好的,但不是關鍵問題。)提前 謝謝! 編輯:我應該給我更多的細節,我正在嘗試做什麼。我想爲編程語言編寫一個解釋器,預計它將支持編譯(dlopen)和解釋模塊。我想要從編譯模塊調用其

    1熱度

    1回答

    是否有可能在共享對象上成功調用dlopen()「指向」另一個共享對象?例如,我想動態地打開庫/usr/lib/libpanel.so。但是,它不是一個真正的圖書館;相反,它 '點' 到/usr/lib/libpanelw.so: $ cat /usr/lib/libpanel.so INPUT(-lpanelw) 隨着dlopen()我得到一個file too short錯誤。有什麼方法可以

    0熱度

    2回答

    我現在有點困惑。昨天我有未定義的符號,即使我用g ++的-rdynamic。但是現在我沒有任何錯誤,這更令人不安。 爲了解釋一下我的情況,我想做一些類似於共享對象的插件。我還沒有決定哪個是最好的方法。 A)我的共享對象都有一個稱爲寄存器的函數,它將被一個參數調用。這將是一個插件管理器。 B)我的共享對象將定義一個類,並將在加載時創建該類的實例。在該類的構造函數中,它將嘗試從應用程序獲取靜態單例並自

    0熱度

    2回答

    這是一種難看的,但我堅持所以這裏有雲: 我寫一個動態庫(以下簡稱「mylib.dylib '),它使用opencv(highgui和其他部分),最終由ffmpeg(libavfilter)加載。圖書館編譯得很好。但是,當我嘗試從ffmpeg的範圍內,我收到以下錯誤dlopen的()的dylib: mylib.dylib: dlopen(mylib.dylib, 2): Library not lo

    4熱度

    2回答

    幾天來我們正在處理非常奇怪的問題。 我不明白它是如何發生的 - 當第三方(MATLAB)程序使用我們的共享庫時,它會以某種方式覆蓋我們自己的一些符號(精確提升)。這些符號是靜態鏈接的(!!)本地。 這是處理 - 我們使用boost 1.47,MATLAB有提升1.40。目前,庫調用從我們的庫調用他們的boost(正則表達式)段錯誤。 所以,這裏是魔術: 我們沒有庫的依賴,LDD: li

    2熱度

    2回答

    我對linux上RTLD_DEEP_BIND的理解是,如果在主程序中有一個函數A(),並且在動態鏈接庫(稱爲lib)中有兩個函數A()和B(),其中B被定義爲: B() { A(); } 然後,對B()的調用總是最終從庫中調用A.這是RTLD_FIRST在Mac上執行的工作嗎?對不起 - 我很困惑的文檔。

    1熱度

    1回答

    我剛剛發現有關@rpath使用dlopen加載名爲.dylib文件,並需要一些幫助理解它們。我在OSX機器上使用Xcode 3.2.5。 我有幾個名爲.dylib的調用其他名爲.dylib的,並且也相互調用。 @rpath似乎適用於加載的初始.dylib,但是一旦我與另一個.dylib進行dlopen調用,該dlopen使用先前找到並使用@rpath加載的第一個.dyblib文件,則dlopen將

    2熱度

    1回答

    我有一個應用程序,它由相當多的共享庫組成。我已經寫了一些perl擴展。另外,我已將perl嵌入到應用程序中。 我在C++中調用了perl腳本。比方說,我的Perl擴展被命名爲SV ::網::信息和SV ::接口和我的Perl文件看起來像這樣 use SV::Net::Info; use SV::Interface; #use IO::Socket; ... ... ... 我能夠從C

    1熱度

    1回答

    有人可以幫助我知道如何使用dlopen獲取libc內存分配函數的句柄?特別是,像搜索libc路徑然後處理句柄。應該使用什麼模式來調用dlsym? 思路是: 1)搜索libc的路徑 2)調用的dlopen它 3)使用的dlsym訪問存儲器的功能(的malloc,釋放calloc等)和 4)使用功能 請幫我用上述4個步驟的代碼片段。 非常感謝。