ldd

    2熱度

    1回答

    通常共享庫有兩個符號鏈接: libexample.so -> libexample.so.1 libexample.so.1 -> libexample.so.1.1 我鏈接到我的程序的共享庫也有兩個符號鏈接: libassimp.so -> libassimp.so.3 libassimp.so.3 -> libassimp.so.3.1.1 當我運行ldd myprogram我得到

    0熱度

    1回答

    我寫了一個簡單的程序,它只是調用一個名爲meller1的函數,它調用meller2,等等,直到某個函數調用free和crash。當該程序與核心轉儲文件運行GDB回溯,我得到: gdb bt 我的問題是,如何GDB BT知道自由是從/lib/libc.so.6取? 有沒有一種手動方式,我可以自己做一個Coredump文件和可執行文件本身? 謝謝。

    1熱度

    2回答

    我想通過提取ldd --version輸出驗證glibc版本。下面是從Ubuntu的機器的例子: ldd (Ubuntu GLIBC 2.21-0ubuntu4) 2.21 這裏是另一個從一個CentOS 6.5的機器: ldd (GNU libc) 2.17 謝謝 克里斯

    0熱度

    1回答

    我有一些可執行文件,它取決於在源文件中設置相對路徑的配置文件。 可執行文件鏈接到在同一項目中創建的庫。 我希望能夠實現的目標是在安裝後讓可執行文件開箱即用,即安裝會將可執行文件,配置文件和庫複製到適當的位置,並將可執行文件鏈接到庫。 我暫時什麼: install(TARGETS ${test_executables} ${PROJECT_NAME} RUNTIME DESTINATION

    0熱度

    2回答

    我想用-rpath選項將共享庫鏈接到另一個共享庫(protobuf),問題是lib在編譯時的另一個direcory中比在運行時,和-rpath選項需要編譯時路徑中存在。 (所以我得到「沒有這樣的文件或目錄」錯誤) 有沒有解決方法? 我寧願不使用LD_LIBRARY_PATH變量來解決這個問題。

    1熱度

    1回答

    我有問題將我的應用程序鏈接到共享對象。我已經乾淨地構建了buildroot,包括host-thrift和host-openssl。 ldd --verbose libthrift.so產生如下: ./libthrift.so: /home/ano/workspace/source/open-source/buildroot/output/host/usr/lib/libcrypto.so.1.0.

    1熱度

    1回答

    我嘗試編譯庫「一個」我的機器上, &我有「C」 &「d」可選的一個在標準路徑安裝,以及依賴作爲本地/自定義路徑,與標準路徑的庫(-O0)相比,自定義路徑中的庫(-O3)更加優化。 我使用LDFLAGS(-L)和LIBS(-l)通過提供本地庫的路徑來編譯庫「A」。並生成庫(libA.so或libA.a)! ldd是一個工具,它可以告訴哪些庫鏈接了可執行文件。 是有一個等效的工具,它可以告訴哪個文庫針

    1熱度

    2回答

    使用LD_PRELOAD加載我時遇到了一些麻煩。 的步驟如下: libtest.c: void fun() { return } 的gcc -o libtest.so libtest.c -fPIC --shared 出口LD_PRELOAD = pwd /libtest.so mai N.C extern void fun(); void main() { fun() } 的g

    2熱度

    1回答

    給出一個動態鏈接的ELF二進制文件,比如說/bin/less。 二進制內部,存在要由共享庫提供的函數的調用,例如strcpy() 如何可以找出從共享庫/共享對象獲得strcp功能? 換句話說,我想獲得func_name/shared_obj_name.so對。 接聽this post,邁克爾·斯萊德說: ELF文件沒有指定哪些符號來自哪個庫;它 只是添加一個共享庫列表鏈接到ELF二進制文件,並允許

    0熱度

    1回答

    我有一個問題,我不知道如何解決。 我曾經寫過一個程序(Python腳本),它返回一個動態庫列表與使用它們的所有可執行文件。 (我的腳本使用ldd工具)。 現在,我想要做一個程序,它會返回一個動態庫函數列表與使用它們的所有可執行文件。 但我該怎麼做? (我認爲主要的問題是庫建設要做到這一點,我需要的源代碼,對不對?) 謝謝! JC