dlopen

    0熱度

    1回答

    下午,任何人。 我有一個由main.c編譯的應用程序'test'。一個由test.cpp用'-g'編譯的動態連接'libtest.so'。在main.c中,我用'dlopen'調用'libtest.so'。現在我想在test.cpp中設置一個斷點,但是gdb從未打過它。我做如下: GDB ./test -d /家庭/ LCL /測試 休息TEST.CPP:35 運行 任何人可以給我一些提示,謝謝!

    3熱度

    1回答

    我是NDK的新手。我正在嘗試創建一個可捕獲數據包的應用程序。我從https://github.com/the-tcpdump-group/libpcap 編譯libpcap的現在,當我嘗試在Android平板電腦上運行的應用程序,它提供了以下錯誤 07-24 02:29:50.627: E/AndroidRuntime(2014): FATAL EXCEPTION: main 07-24 02:

    0熱度

    1回答

    我執行的dlopen方法在MONOMAC應用: MonoMac.ObjCRuntime.Dlfcn.dlopen("/.../SomeFramework.framework/SomeFramework", 0); 的第一個參數是將一些外部框架的絕對路徑。這個方法總是返回空指針。如何使用絕對路徑在Monomac應用程序中加載動態庫? 如果我將LSEnvironment密鑰添加到Info.plis

    0熱度

    1回答

    對不起,我遇到了一個非常困難的時間,我把它看起來似乎。它工作正常,在使用SQLite的應用程序,但是當我與 rails new devtest --database=postgresql 事情創建了一個應用程序似乎並沒有在這個項目中工作。我正在使用postgres.app $ cd devtest/ johns-mbp:devtest johncurry$ rails generate co

    -1熱度

    3回答

    我在問自己爲什麼這段代碼在我沒有爲fptr分配內存時工作得很好。我期望它有一個未定義的行爲因爲沒有爲fptr分配內存或做memcpy? struct conf *pconf = NULL; void (*fptr)(char *, struct conf **); void *temp = dlsym(dlptr, "config_run_all"); memcpy(&fptr, &temp

    2熱度

    1回答

    我做了一個C++主應用程序,它加載了一個也由我製作的庫。 兩個源共享一個通用頭文件(TestFlags.h)。 TestFlags.h內部我有一個類和它的指針聲明它是全局的整個應用程序,即在主應用程序中定義一個實例,並在庫函數中使用它。 class TestFlags { public: TestFlags() : behaviour(1) {} int beha

    2熱度

    1回答

    我想讓一個共享庫從它正在加載到的進程調用一個函數。該庫是用C語言編寫的,即C++中的「內核」。 kernel.cpp: #include <stdio.h> #include <dlfcn.h> typedef void(*func_t)(); extern "C" { void test(); } int main() { char *error;

    2熱度

    2回答

    如果我希望在運行時使用dlopen解析這些外部變量,該怎麼辦? 進出口試圖理解爲什麼包括一個H文件,用共享庫外部VARS和funcs中,一個C可執行程序導致未定義的/未解決。 (鏈接時) 爲什麼我要「-lsomelib」標誌添加到GCC連接,如果我只希望這些符號在運行時解析。 鏈接時間鏈接器需要這些定義解決方案。爲什麼不能在運行時使用dlopen等待分辨率。 任何人都可以幫助我理解這一點嗎?

    1熱度

    1回答

    我想創建一個使用dlsym和dlopen的通用工具,用於加載外部庫並從中調用特定的函數。我現在該工具的代碼是: void bootload(string libraryname, string functionname, int argc, char** argv) { void *handle; char *error; handle = dlopen(libra

    1熱度

    3回答

    我有一些函數,比如int foo(int x),我從一個DLL中獲得(使用dlsym())。所以,目前我的代碼看起來是這樣的: void foo(int x) { void (*foo)(int x); foo = dlsym(dll_handle, "foo"); int y = foo(x); printf("y is %d", y); } 我想什