library.dynam
位於 base
包(package)。 說明
如果尚未加載,則加載指定的已編譯代碼文件,否則將其卸載。
用法
library.dynam(chname, package, lib.loc,
verbose = getOption("verbose"),
file.ext = .Platform$dynlib.ext, ...)
library.dynam.unload(chname, libpath,
verbose = getOption("verbose"),
file.ext = .Platform$dynlib.ext)
.dynLibs(new)
參數
chname |
命名要加載的 DLL(也稱為動態共享對象或庫)的字符串。 |
package |
帶有包名稱的字符向量。 |
lib.loc |
說明位置的字符向量R可供搜索的 Library 樹。 |
libpath |
要卸載其 DLL 的已加載包的路徑。 |
verbose |
一個邏輯值,指示在加載 DLL 之前是否在控製台上打印公告。默認值取自係統 |
file.ext |
擴展名(包括‘.’(如果使用)附加到文件名以指定要加載的庫。這默認為操作係統的適當值。 |
... |
某些庫需要額外的參數,這些參數會傳遞給 |
new |
與包加載的 DLL 相對應的 |
細節
請參閱 dyn.load
了解這些函數處理的對象類型。
library.dynam
被設計為在包內使用而不是在命令行中使用,並且實際上應該隻在包內使用.onLoad
。 DLL 的係統特定擴展(例如,‘。所以' 或者 '.sl’ 在類 Unix 係統上,‘.dll’ 在 Windows 上)不應添加。
library.dynam.unload
設計用於 .onUnload
:它卸載 DLL 並更新 .dynLibs()
的值
.dynLibs
用於獲取(不帶參數)或設置當前由包加載的 DLL(使用 library.dynam
)。
值
如果未指定chname
,則library.dynam
返回與包加載的DLL對應的類"DLLInfoList"
的對象。
如果指定chname
,則以不可見方式返回標識DLL 並可在將來的調用中使用的"DLLInfo"
類的對象。請注意,"DLLInfo"
類有一個 $
方法,可用於解析該 DLL 中的本機符號。
library.dynam.unload
無形地返回一個 "DLLInfo"
類的對象,標識 DLL 已成功卸載。
.dynLibs
返回與其當前值對應的"DLLInfoList"
類的對象。
警告
不要在 library.dynam
加載的 DLL 上使用 dyn.unload
:使用 library.dynam.unload
確保 .dynLibs
得到更新。否則,後續調用 library.dynam
將被告知該對象已加載。
請注意,是否可以卸載 DLL,然後重新加載同一文件的修訂版本是 OS-dependent:請參閱 dyn.unload
幫助的“值”部分。
例子
## Which DLLs were dynamically loaded by packages?
library.dynam()
## More on library.dynam.unload() :
require(nlme)
nlme:::.onUnload # shows library.dynam.unload() call
detach("package:nlme") # by default, unload=FALSE , so,
tail(library.dynam(), 2)# nlme still there
## How to unload the DLL ?
## Best is to unload the namespace, unloadNamespace("nlme")
## If we need to do it separately which should be exceptional:
pd.file <- attr(packageDescription("nlme"), "file")
library.dynam.unload("nlme", libpath = sub("/Meta.*", '', pd.file))
tail(library.dynam(), 2)# 'nlme' is gone now
unloadNamespace("nlme") # now gives warning
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
getLoadedDLLs
有關 "DLLInfo"
和 "DLLInfoList"
對象的信息。
.onLoad
, library
, dyn.load
, .packages
, .libPaths
SHLIB
了解如何創建合適的 DLL。
相關用法
- R library 加載/附加和列出包
- R libPaths 包的搜索路徑
- R libcurlVersion libcurl 的報告版本
- R list2DF 從列表創建 DataFrame
- R license R 許可條款
- R list.files 列出目錄/文件夾中的文件
- R list 列表 – 通用和點對
- R list2env 從列表中構建或添加到環境
- R lapply 對列表或向量應用函數
- R levels 級別屬性
- R ls 列出對象
- R lengths 列表或向量元素的長度
- R load 重新加載保存的數據集
- R lower.tri 矩陣的下三角部分和上三角部分
- R log 對數和指數
- R locales 查詢或設置區域設置的各個方麵
- R l10n_info 本地化信息
- R length 物體的長度
- R labels 從對象中查找標簽
- R logical 邏輯向量
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R dump R 對象的文本表示
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Loading DLLs from Packages。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。