程序啟動與動態載入庫資訊

2021-07-08 17:24:16 字數 2491 閱讀 9157

通過ipsec start命令啟動

ipsec 實際是乙個可執行指令碼,放在/usr/local/sbin下,他實際呼叫了/usr/local/libexec/ipsec/目錄下的starter。

通過ldd命令可以檢視相關程序的依賴庫資訊。

[

root@flexbng

-dev ipsec

]#ll

total

560

-

rwxr-xr

-x.1

root root 

98048

oct1614:

50charon

-

rwxr-xr

-x.1

root root 

16741

oct1614:

50

-

rwxr-xr

-x.1

root root

121656

oct1614:

50scepclient

-

rwxr-xr

-x.1

root root

234203

oct1614:

50starter

-

rwxr-xr

-x.1

root root 

70709

oct1614:

50stroke

-

rwxr-xr

-x.1

root root 

19225

oct1614:

50_updown

[

root@flexbng

-dev ipsec

]#ldd

-r charon

linux

-vdso.so

.1=>

(0x00007ffff65ff000

)

libstrongswan.so

.0=>

/usr

/local

/lib

/ipsec

/libstrongswan.so

.0(0x00007fbfc0cb3000

)

libhydra.so

.0=>

/usr

/local

/lib

/ipsec

/libhydra.so

.0(0x00007fbfc0aac000

)

libcharon.so

.0=>

/usr

/local

/lib

/ipsec

/libcharon.so

.0(0x00007fbfc07f6000

)

libm.so

.6=>

/lib64

/libm.so

.6(0x00007fbfc04e6000

)

libpthread.so

.0=>

/lib64

/libpthread.so

.0(0x00007fbfc02c9000

)

libdl.so

.2=>

/lib64

/libdl.so

.2(0x00007fbfc00c5000

)

libc.so

.6=>

/lib64

/libc.so

.6(0x00007fbfbfd04000

)

libunwind.so

.8=>

/lib64

/libunwind.so

.8(0x00007fbfbfae9000

)

/lib64/ld

-linux

-x86

-64.so.2

(0x00007fbfc0fa6000

)

可以看到,主要的charon程序,依賴與libcharon.so、libstrongswan.so、libhydra.so。這幾個so在/usr/local/lib/ipsec目錄下

再看一下各個lib的依賴關係,可以看到 strongswan是基本的,hydra依賴與strongswan,charon依賴於他們兩個。

程序動態執行時,需要找動態庫,按照/etc/ld.so.conf指明的目錄去載入

動態載入動態庫

message函式的宣告你應該知道吧,把它的宣告和下面的語句寫到乙個標頭檔案中 pragma comment lib,a.lib 然後你的對話方塊.cpp中包含這個標頭檔案就可以使用message函式了。如果dll沒有對應的.lib檔案,那麼就只能使用動態載入的方式了。動態呼叫動態庫步驟 1 建立乙...

動態載入庫

使用vc程式設計時遇到乙個奇怪的情況,包含了,但是編譯器編譯結果告知無法找到hmonitor結構,從vc上 能看到hmonitor結構宣告在windef.h裡,但是包含了還是不行,最後乙個同事告知包含multimon.h即可。好,切入正題。結構找到了,不過很多函式沒有找到,在網上也沒找到好方法。最後...

動態庫的載入與測試

之前寫了個程式,使用了第三方庫lzma 裝了xz命令 make install 程式寫好以後,編譯沒有問題,但是執行時卻報了如下的錯誤 searcher error while loading sharedlibraries liblzma.so.5 cannot open shared objec...