SHLIB
位於 utils
包(package)。 說明
編譯給定的源文件,然後將所有指定的目標文件鏈接到一個共享對象(又名 DLL)中,該共享對象可以加載到R使用dyn.load
或者library.dynam
.
用法
R CMD SHLIB [options] [-o dllname] files
參數
files |
指定要包含在共享對象/DLL 中的對象文件的列表。您還可以包含源文件的名稱(目標文件是根據其源自動創建的)和庫鏈接命令。 |
dllname |
要構建的共享對象/DLL 的全名,包括擴展名(通常為“。所以' 在 Unix 係統上,以及 '.dll’在 Windows 上)。如果未給出,則對象/DLL 的基本名稱取自第一個文件的基本名稱。 |
options |
控製處理的更多選項。使用 |
細節
R CMD SHLIB
是INSTALL
用於編譯包中源代碼的機製。它將為 C、C++、Objective C(++) 和 Fortran 源代碼生成合適的編譯命令:也可以使用 Fortran 90/95 源代碼,但可能無法將它們與其他語言混合使用(在大多數平台上,可以與 C 混合,但與 C++ 混合很少起作用)。
請參閱手冊“編寫 R 擴展”中的“創建共享對象”部分,了解如何自定義它(例如添加 cpp
標誌並將庫添加到鏈接步驟)以及其一些怪癖的詳細信息。
項目在files
帶有擴展名‘。C', '.cpp', '.cc', '。C', '。F', '.f90', '.f95', '.米’ (ObjC), ‘.M' 和 '。毫米' (ObjC++) 被視為源文件,擴展名為 '.o’作為目標文件。所有其他項目都傳遞給鏈接器。
Objective C(++) 支持是可選的R已配置:它們的主要用途是在 macOS 上。
請注意,如果提供了 C++、Fortran 或 Objective C(++) 源,則在鏈接時將使用適當的運行時庫,但不適用於從這些語言編譯的目標文件。
選項-n(也稱為--dry-run)將顯示將運行但未實際執行的命令。
注意
一些二進製發行版R有SHLIB
在一個單獨的包中,例如R-devel
轉速。
例子
## Not run:
# To link against a library not on the system library paths:
R CMD SHLIB -o mylib.so a.f b.f -L/opt/acml3.5.0/gnu64/lib -lacml
## End(Not run)
也可以看看
COMPILE
、dyn.load
、library.dynam
。
“R 安裝和管理”和“編寫 R 擴展”手冊,包括前者中的“自定義編譯”部分。
相關用法
- R SweaveSyntConv 轉換 Sweave 語法
- R Sweave 自動生成報告
- R select.list 從列表中選擇項目
- R COMPILE 編譯用於 R 的文件
- R readRegistry 讀取 Windows 注冊表配置單元
- R browseVignettes 在 HTML 瀏覽器中列出暈影
- R hasName 檢查姓名
- R nsl 按主機名查找 IP 地址
- R edit 調用文本編輯器
- R create.post 準備電子郵件和帖子的輔助函數
- R hsearch-utils 幫助搜索實用程序
- R download.packages 從類似 CRAN 的存儲庫下載軟件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表對象及其結構
- R Rscript R 前端腳本
- R bug.report 發送錯誤報告
- R PkgUtils 用於構建和檢查附加包的實用程序
- R cite 引用參考書目條目
- R RSiteSearch 搜索文檔中的關鍵詞或短語
- R glob2rx 將通配符或通配符模式更改為正則表達式
- R getFromNamespace 用於開發命名空間的實用函數
- R demo R 函數演示
- R mirrorAdmin 管理存儲庫鏡像
- R citation 在出版物中引用 R 和 R 包
- R personList 人員集合(舊接口)
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Build Shared Object/DLL for Dynamic Loading。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。