1. 程式人生 > 其它 >sql 查詢字元座標位置 之PATINDEX()函式詳解

sql 查詢字元座標位置 之PATINDEX()函式詳解

1編譯連結庫

  • -lz:壓縮看(Z)
  • -lrt: 實時庫(real time):shm_open系列
  • -lm: 數學庫(math)
  • -lc: 標準C庫(C lib)
  • -dl: 顯示載入動態庫的動態函式庫

2檔案引數

  • -I ( i 的大寫) :指定標頭檔案路徑(相對路徑或絕對路徑,建議相對路徑)
  • -i :指定標頭檔案名字 (一般不使用,而是直接放在.c 檔案中通過#include<*.h> 新增)
  • -L :指定連線的動態庫或者靜態庫路徑(相對路徑或絕對路徑,建議相對路徑)
  • -l (L的小寫):指定需要連結的庫的名字(連結 libc.a :-lc 連結動態庫:libc.so : -lc 注意:-l後面直接新增庫名省去“lib”和“.so”或“.a” )

2.1 問題:

問題1:-l(L的小寫)連結的到底是動態庫還是靜態庫

答案:如果連結路徑下同時有 .so 和 .a 那優先連結 .so

問題2:如果路徑下同時有靜態庫和動態庫如何連結靜態庫

答案:使用顯示連結, gcc -l:lib***.a (將靜態庫的名字顯示寫出來)

或者在 gcc 編譯的時候 加入引數 -static -lXXX, 則可以新增路徑下面的靜態庫。

驗證方法:

可以通過 ldd 命令檢視生成的 目標檔案連結的庫,使用方法: ldd ***.o

2.2 參考

gcc -I -i -L -l 引數區別 / -l(靜態庫/動態庫)(轉)

2.3 靜態庫連結時搜尋路徑順序

  1. ld會去找GCC命令中的引數-L
  2. 再找gcc的環境變數LIBRARY_PATH (用法:LIBRARY_PATH= path)
  3. 再找內定目錄 /lib /usr/lib /usr/local/lib這是當初compile gcc時寫在程式內的 (因系統版本而定 :/lib64)

2.4 動態庫連結時搜尋路徑順序

  1. 去找GCC命令中的引數-L
  2. 環境變數LD_LIBRARY_PATH指定的動態庫搜尋路徑 (LD_LIBRARY_PATH=path)
  3. 配置檔案/etc/ld.so.conf中指定的動態庫搜尋路徑 (修改/etc/ld.so.conf檔案,將路徑新增進去,執行/sbin/ldconfig)
  4. 預設的動態庫搜尋路徑/lib(因系統版本而定:/lib64)
  5. 預設的動態庫搜尋路徑/usr/lib(因系統版本而定)

2.5 標頭檔案搜素路徑

  1. 去 -I( i 的大寫 ) 指定的路徑
  2. 源程式頭(#include "")檔案中指定的路徑
  3. /usr/include
  4. /usr/local/include

2.6 有關環境變數

LIBRARY_PATH環境變數:指定程式靜態連結庫檔案搜尋路徑
LD_LIBRARY_PATH環境變數:指定程式動態連結庫檔案搜尋路徑
(這部分來源:https://blog.csdn.net/qq_21034239/article/details/54382311,並修改)