dlopen

    -3熱度

    2回答

    我已通過多個堆棧溢出職位消失,試圖執行下面的例子與C++對象類 我具有以下的代碼使用的dlopen類對象。 1)文件hello.cc #include <stdio.h> #include "hello.h" A::A() { init1(); } void A::init1() { printf("\n init "); } 2)文件hello.h #inclu

    3熱度

    1回答

    當你使用共享對象時,是否有一種機制讓該DLL中的代碼執行而不被顯式調用?具體而言,調用者dlopen()可能不知道的全局/靜態C++靜態初始化代碼?我很確定答案應該是「是」,但我不記得是什麼機制使這種情況發生,以及如何利用它來運行任意代碼。

    0熱度

    2回答

    我有一個編譯爲.so文件(使用g ++ 5編譯)的C++項目。 在另一個項目中(在相同的解決方案下),我有一個鏈接到這個項目的測試(CMake的命令target_link_libraries(...))。 我編譯項目,並複製輸出.so文件,讓可以說「/tmp/proj.so」。 除了將測試鏈接到項目外,我還使用dlopen動態加載「/tmp/proj.so」,該函數具有全局函數create_foo

    2熱度

    1回答

    我希望能夠將共享庫的多個副本加載到相同的地址空間。我希望他們不要共享任何全局變量,並且我希望這兩個副本不知道另一個已加載。 用例是一個線程安全庫的並行執行。 我怎樣才能做到這一點 在Linux上 ? 在OS X上? 在Windows上? on * BSD? 在其他類Unix系統上?

    0熱度

    1回答

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

    1熱度

    2回答

    幾年前,我聽說Google有一個修補程序,用於將存儲在另一個文件中的共享對象存儲在非零偏移量或mmap'd中,而不是坐在自己的獨立文件中。那有沒有土地?加載這些對象的API是什麼?

    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會幫忙嗎? 請幫助我的語法和損壞的名稱。

    0熱度

    1回答

    即時通訊在模塊化程序上使用dlopen,我認爲有些事情真的是錯誤的,但我似乎無法弄清楚。 requirementData是一個名爲VoidData的類的向量。它僅僅是一個類來處理void *容易 getCopyOfData()使用memcpy來複制存儲在void *中的數據。直到此處爲止,地址voidptr與存儲在我的VoidData對象中的地址不同,因此副本是成功的。 現在... stringA

    3熱度

    3回答

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