2015年8月4日 星期二

dlopen中flag的區別

RTLD_LAZY: 在dlopen返回前, 對於動態庫中存在的未定義的變量(如外部變量extern, 也可以是函數)不執行解析, 就是不解析這個變量的地址

RTLD_NOW: 與上面不同, 他需要在dlopen返回前, 解析出每個為定義變量的地址, 如果解析不出來, 在dlopen會返回NULL, 錯誤為:
: undefined symbol: xxxx........

RTLD_GLOBAL: 它的含義是使得庫中的解析的定義變量在隨後的其他的鏈接庫中變得可以使用

沒有留言:

張貼留言