当R安装包含其他程序/库的包(例如hdf5
,SQLite
)时,我可以在其他程序中使用它们吗?例如,我在hdf5.so
中安装了/Library/Frameworks/R.framework/Versions/2.13/Resources/library/hdf5/libs/x86_64/
- 我是否可以使用此代码来安装hdf5
以供Python(h5py
等)使用。
答案 0 :(得分:9)
作为一般规则,没有。你也可能误读了这个:hdf5.so
是从R到hdf5库的绑定。例如。当(在Linux机器上)我问链接器给定的R库链接到什么时,我会得到类似
edd@max:~$ ldd /usr/lib/R/site-library/XML/libs/XML.so
linux-vdso.so.1 => (0x00007fffcbf75000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007fc0a1514000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fc0a12fc000)
libR.so => /usr/lib/libR.so (0x00007fc0a0d92000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc0a09fe000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc0a07fa000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc0a0574000)
libblas.so.3gf => /usr/lib/atlas-base/atlas/libblas.so.3gf (0x00007fc09fcff000)
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fc09fa1b000)
libreadline.so.6 => /lib/libreadline.so.6 (0x00007fc09f7d8000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fc09f59c000)
liblzma.so.2 => /usr/lib/liblzma.so.2 (0x00007fc09f37a000)
libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007fc09f169000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc09ef61000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fc09ed53000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc09eb34000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc0a1ab6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc09e91e000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00007fc09e6d9000)
edd@max:~$
表明R的XML包本身依赖于libxml2。
因此,不是提供您正在寻找的库,而是通常只链接到它们。