dlopen

    0熱度

    1回答

    我加載動態LIB(在通過ctypes的蟒蛇),並得到這樣的錯誤: OSError: dlopen(mlib.dylib, 6): Symbol not found: _NSLocalizedDescriptionKey Referenced from: /Users/abc/work/as/mlib.dylib Expected in: flat namespace in /Users/abc/w

    0熱度

    1回答

    當我試圖編譯sqlite3 uding djgpp時,它給出錯誤未定義的引用dlopen,未定義的引用dlclose,未定義的引用dlsym等。 在Linux上,如果我們使用-ldl,則問題已消失。但是在djgpp中沒有dl.a可用。 那麼如何解決這個問題呢?

    0熱度

    1回答

    根據docs/PREBUILTS.html,允許在NDK應用程序中使用預先構建的共享對象。所以我試圖讓我的NDK應用程序從第二個共享對象導入一個函數,但只要在我的APK中使用第二個共享對象,即使在輸入android_main()之前,整個shebang也會崩潰。 logcat的說: E/AndroidRuntime(1931): java.lang.RuntimeException: Unabl

    5熱度

    1回答

    是否有任何希望運行dlopen(NULL, ...)並獲取靜態編譯二進制文件的符號? 例如,如果程序是動態編譯的,並且使用-rdynamic,則使用以下代碼可以獲得符號。 $ gcc -o foo foo.c -ldl -rdynamic $ ./foo bar In bar! 但隨着-static我得到一個神祕的錯誤消息: $ gcc -static -o foo foo.c -ldl

    1熱度

    1回答

    如果我使用dlopen打開一個動態庫並且我的程序終止而沒有相應的dlclose,引用計數是否會減少?如果不是,會發生什麼?庫會保持加載狀態直到下一次重新啓動?

    3熱度

    1回答

    如果我使用C++中的動態加載打開庫,以後可以重新加載該庫的更新版本嗎?我會自己測試一下,但我很好奇它的可行性,然後纔開始將這看作是我正在開發的某個潛在解決方案。 如果它有所作爲,我在Linux上運行。能夠使其在其他操作系統上工作會很好,但不是必需的。

    1熱度

    3回答

    我正在開發一個C++應用程序,它需要在運行時使用dlopen加載動態庫。這個庫通常不會被我寫。 人們推薦什麼方法來確保這個庫和我的應用程序之間的二進制兼容性? ,因爲我看到他們的選項有: 放入庫中的文件名的版本號,並嘗試加載它(通過一個符號鏈接),不管是什麼。如果dlopen失敗,請報告錯誤。 保持第二個接口返回版本號。但是,如果由於某種原因該界面發生變化,我們會遇到和以前一樣的問題。 還有其他的

    0熱度

    2回答

    我有後續問題。 我有位於parser.o庫中的文本分析器。我想解析一些文本(查找函數)並調用它們。函數在functions.o文件中實現。我能夠解析文本,但我不知道如何從庫函數調用函數。我使用dlopen(NULL, RTLD_NOW);來獲取主程序的引用,但是當我運行實際的程序時,它無法找到給定的功能,出現錯誤"./program: undefined symbol: function_name

    0熱度

    1回答

    我使用名爲GLC的C庫以編程方式記錄我的OpenGL緩衝區。 GLC監聽按鍵,這不是一個真正的以編程方式觸發的很好的解決方案。 因此,我想通過我的軟件中的函數調用從GLC執行記錄。 我的C++軟件正在鏈接到包含所需函數start_capture()的庫。通過nm我可以看到這個功能是本地的,標記爲小寫字母t。 既然它必須是全局的,才能在我的軟件中訪問它,所以我想重新編譯庫(我已經完成了)。但是我不知

    1熱度

    2回答

    我試圖通過其地址在內存中獲取符號名稱由它的地址符號的更多信息。我使用dlfcn.hint dladdr(void *addr, Dl_info *info)函數來獲取信息: typedef struct { const char *dli_fname; /* Pathname of shared object that contains address */