dlopen

    2熱度

    3回答

    的情況下,我創建一個使用dlsysm(剪切對象開放),但我收到以下錯誤: error: invalid conversion from "void*" to "void (*)()" 這裏是我的代碼: #include<iostream> #include<dlfcn.h> using namespace std; int main() { void (*fnptr)();

    0熱度

    1回答

    我在64位java進程中在RHEL 64上調用dlopen ("libjvm.so", RTLD_NOLOAD)。它失敗,錯誤: libjvm.so: invalid mode for dlopen(): Invalid argument 我做lsof -p <pid of java process>,它顯示libjvm.so,裝載模塊。 libjvm.so從路徑jre1.8.0_121/li

    0熱度

    1回答

    dlopen的我想加載從gdb的共享庫(的.so),我發現這個命令: (gdb) call dlopen("path/to/lib.so",..) 但它不工作,我聯繫我的程序與-ldl。 我得到的錯誤是: No symbol "dlopen" in current context 我錯過了什麼?

    0熱度

    1回答

    我有兩個動態庫,a.so和b.so.兩個庫都包含一個函數f(),每個庫中的代碼都不相同。該函數在另一個函數ga()和gb()的每個庫中調用。 我也有一個可執行程序,使用dlopen()動態加載這兩個庫。這個程序在某個時候調用ga()和gb()。什麼函數f()將在每種情況下執行? 這是所有的C代碼,所以f()在a.so和b.so中應該是相同的符號。

    1熱度

    2回答

    我正在使用一個嵌入式框架,它在其+load方法中進行調整和其他操作。 我需要更好的控制,因爲在實際加載的框架(我並不總是使用它)的情況下。 爲了手動加載它 - 我試圖做的是從「嵌入式二進制文件」部分刪除框架。 現在框架鏈接爲「可選」,而不是「要求」(這是試錯 - ?有什麼區別) 明確地複製架構到應用程序的資源(而不是框架目錄「嵌入式二進制文件」部分)。 在我的代碼,我只加載框架當我真正需要做以下的

    0熱度

    1回答

    我似乎無法找到一個答案後,在網上搜索出來。 當我使用dlopen的第一次它似乎需要更長的時間比之後的任何時間,包括如果我從程序的多個實例運行。 dlopen的是否加載了所謂到內存中一次,並有OS保存它,這樣即使是從程序點的另一個實例在內存中的相同點以下的任何電話? 所以基本上不會運行庫的程序的3個實例意思是相同的。所以3個實例被加載到內存中,還是有隻有一個實例在內存中? 感謝

    0熱度

    1回答

    因此,映射文件中的每個條目都有開始和結束地址在哪裏被mmap化。如果一個庫被動態加載(可能使用dlopen()),以前的條目地址會受到任何影響? (當然假設流程的PID沒有變化)。 換句話說,前dlopen()的,在這裏是在maps-一個採樣條目> ADDR1 - ADDR2 R-XP 00000000 08:02 135522 /usr/lib64/lib_sample.so 的dlopen後(

    3熱度

    2回答

    我試着動態加載與C和我已經遇到了問題,在非常設置。我有一個運行時加載對象的小程序。該對象包含一個將某些消息寫入stdin的函數。這是在OS X 10.10上使用clang編譯的。下面是代碼: /* loader.c */ #include <stdlib.h> #include <stdio.h> #include <dlfcn.h> #include "module.h" int

    1熱度

    2回答

    我需要從使用C++的Solaris 10上的當前可執行文件中知道函數地址(我正在使用GNU g ++ 4.9.2)。例如,我有一個函數說:void doSomething(const char * p),它可能會或可能不會在當前的可執行文件中定義。所以,我想搜索當前可執行文件中的函數(如果存在),然後調用該函數執行一些默認操作。我怎麼做? dlsym會幫忙嗎? 請幫助我的語法和損壞的名稱。

    3熱度

    3回答

    我一直在努力與dlopen和未定義的符號。 我已經和到目前爲止已經試過:與功能functionA() libraryB.so這是使用functionA() libraryA.a與功能functionA() libraryA.so 執行能夠加載libraryB.so與dlopen。 我得到的是: undefined symbol: functionA 如何我構建: LibraryA的: gcc