我在Windows上运行R,而不是管理员.当我安装包时,以下命令不起作用:
> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable
Run Code Online (Sandbox Code Playgroud)
要安装软件包,我必须指定一个库位置:
install.packages("zoo", lib="C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
要加载包,我还必须指定库位置:
library("zoo", lib.loc="C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
所有这一切C:/software/Rpackages都没问题,但我想知道是否可以以某种方式添加到库路径,因此不必每次都输入它.
当我在网上搜索时,我发现一种方法是编辑Rprofile.site文件并添加行
.libPaths("C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
但是,在执行此操作并启动RStudio之后,这就是我得到的输出
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
Run Code Online (Sandbox Code Playgroud)
在.libPaths我加入命令Rprofile.site似乎并没有有任何影响!为什么会这样?或者更重要的是,如何解决问题以便我可以在不输入库位置的情况下安装和加载包?
注意:如果我启动RStudio,.libPaths()命令似乎按预期工作
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
Run Code Online (Sandbox Code Playgroud)
这不奇怪吗?
我在Linux上有一个服务.
当我开始使用服务启动或启动时init.d.它无法加载已存储的配置/etc/ld.so.conf.d/.因此/etc/ld.so.conf.d/.,此服务无法启动加载库路径的某些进程.
但是当我在shell中运行此服务脚本时,它工作正常.
如何加载库路径/etc/ld.so.conf.d/?
非常感谢.
$ uname -a
Linux xhost10.bcgsc.ca 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
$ /sbin/ldconfig --version
ldconfig (GNU libc) 2.5
Run Code Online (Sandbox Code Playgroud)
我在本地安装了几个二进制文件和库,因为我没有root访问权限.
某些程序需要在运行时动态链接到非标准位置的共享库.
执行时,程序返回:
$ path/to/cc1
path/to/cc1: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经添加了库的路径$LD_LIBRARY_PATH,但是如果ldconfig没有root访问权限我就无法更新缓存...
是否有用户特定的/etc/ld.so.cache?
或者更一般地说,是否可以使用用户配置文件"屏蔽"系统配置文件?
怎么给的路径.dll或.so在NetBeans文件中使用加载库
System.loadLibrary("Foo")
Run Code Online (Sandbox Code Playgroud)
我在netbeans页面上看到了这个但是无法帮助我.因为它给出了不满意的链接错误.
这是我尝试的两件事:
在下面的快照中,我在libnetbeans项目中创建了一个文件夹,并将dll文件放在其中.

在第二个快照中,我在lib文件夹中创建了一个文件modules夹,并将所有dll文件放在lib文件夹中,如链接中所述.

但他们俩都给我unsatisfied link error例外.如何设置java.library.pathnetbeans以便我可以直接从netbeans测试应用程序,而无需去终端上写?
在升级到Lion 并升级Xcode之后,make似乎找不到头文件和库.我查看/ usr/include.那里唯一的东西是'并行 - 服务器'.所以,我将/ usr/include重命名为/usr/include.old,并创建了一个符号链接:
/Developer/SDKs/MacOSX10.6.sdk/usr/include/
这很邪恶.但是,make现在可以找到标题.仍然找不到libs(例如,lcrt1.10.6.o).
解决include和lib问题的正确方法是什么?
谢谢!
我有一个简单的Perl脚本,打印出来@INC如下:
#!/usr/bin/perl
print $_, "\n" for @INC;
Run Code Online (Sandbox Code Playgroud)
我用两种不同的方式执行脚本./test.pl和perl test.pl,输出如下所示:
[neevek@~/bin]$ ./test.pl
/Library/Perl/5.12/darwin-thread-multi-2level
/Library/Perl/5.12
/Network/Library/Perl/5.12/darwin-thread-multi-2level
/Network/Library/Perl/5.12
/Library/Perl/Updates/5.12.3
/System/Library/Perl/5.12/darwin-thread-multi-2level
/System/Library/Perl/5.12
/System/Library/Perl/Extras/5.12/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.12
.
[neevek@~/bin]$ perl test.pl
/opt/local/lib/perl5/site_perl/5.12.3/darwin-multi-2level
/opt/local/lib/perl5/site_perl/5.12.3
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level
/opt/local/lib/perl5/vendor_perl/5.12.3
/opt/local/lib/perl5/5.12.3/darwin-multi-2level
/opt/local/lib/perl5/5.12.3
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl
.
Run Code Online (Sandbox Code Playgroud)
我的问题是:用./script.pl和执行perl脚本的幕后操作是perl script.pl什么?是什么导致脚本输出不同@INC?
我在这里玩的包很不为人所知,但问题却很普遍.基本上,我正在尝试使用C++扩展编译Python模块(称为rql).该扩展使用称为gecode的外部框架,其中包含多个库.我编译了gecode并在本地安装.现在,让输出说明一下:
red@devel:~/build/rql-0.23.3$ echo $LD_LIBRARY_PATH
/home/red/usr/lib
red@devel:~/build/rql-0.23.3$ ls $LD_LIBRARY_PATH | grep libgecodeint
libgecodeint.so
libgecodeint.so.22
libgecodeint.so.22.0
red@devel:~/build/rql-0.23.3$ python setup.py build
running build
running build.py
package init file './test/__init__.py' not found (or not a regular file)
running build_ext
building 'rql_solve' extension
g++ -pthread -shared build/temp.linux-i686-2.5/gecode-solver.o -lgecodeint -lgecodekernel -lgecodesearch -o build/lib.linux-i686-2.5/rql_solve.so
/usr/bin/ld: cannot find -lgecodeint
collect2: ld returned 1 exit status
error: command 'g++' failed with exit status 1
Run Code Online (Sandbox Code Playgroud) 我需要一种或多或少的可移植编程方式来查询动态库路径列表.对于Linux,我可以连接$LD_LIBRARY_PATH和/etc/ld.so.conf(include根据需要处理指令并可能按体系结构过滤)的内容,但这在FreeBSD上不起作用.
最终,我需要一个Python函数来做到这一点.如果需要,它可以调用gcc或其他外部命令.
为了安装第三方Python包,我使用了setup.py脚本,该脚本使用setuptools.setup()来安装一堆包.安装完成后,我可以在/usr/local/lib/python2.7/dist-packages下的一台机器上以及/usr/lib/python2.7/site-packages下的另一台机器上找到这些软件包.
现在我想写一个Python脚本,找出第三方软件包的安装位置.我怎样才能做到这一点?
1)sys.prefix = sys.exec_prefix在两台机器上都是"/ usr".
2)python可执行文件位于两台机器/ usr/bin/python上.
3)distutils.sysconfig.get_python_lib()在一台机器上是/usr/lib/python2.7/dist-packages(缺少"local"),在另一台机器上是/usr/lib/python2.7/site-packages.
在将OpenCV之类的库与C / C ++一起使用时,使用诸如OpenCV_LIBS之类的变量将编译器/链接器指向相关目录。
使用cmake的示例:
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( project_name ${OpenCV_LIBS} )
Run Code Online (Sandbox Code Playgroud)
如何检查此类变量指向的位置?我尝试在终端输入set或输入printenv,但它仅显示一些系统变量。另外,如何设置/更改此类变量?