让./configure在特定目录中查找库文件

时间:2011-07-01 17:02:01

标签: autoconf

我目前正在跨多个服务器的共享空间上安装R软件。安装后我发现当我登录不同的服务器时,由于不同机器上的某些库文件丢失,因此无法保证运行R. 这是我正在尝试做的事情:由于R的安装与机器有关,我想将所有缺少的库文件(如libtermcap.so.2,libg2c.so.1等)放到单个目录中共享空间,这样当我运行./configure时,它也会搜索这个目录。由于此目录是共享的,因此安装可能与机器无关,因此我不需要在每台服务器上添加丢失的文件。

运行./configure时是否有实现此目的的选项?感谢。

2 个答案:

答案 0 :(得分:6)

假设您已将库文件复制到/shared/lib/并将头文件复制到/shared/include/,则可以运行

./configure LDFLAGS=-L/shared/lib CPPFLAGS=-I/shared/include ...other options...

但请注意,在运行时遇到麻烦,必须说服安装程序使用正确目录中的共享库,尤其是有人决定在相应主机上升级默认版本时。整个业务依赖于平台和安装。我认为如果您的主机至少大部分都不相同,那么您应该以适合相应系统的方式在本地安装您的软件(R)。

答案 1 :(得分:0)

彼得的答案是正确的(+1),请特别注意他的建议在当地安装。使用本地软件包管理系统并在每个框上自动更新(从长远来看)比尝试在共享驱动器上获得兼容的二进制文件/库更容易。要简化使用Peter的解决方案,请注意您可以在/shared/share/config.site中放置适当的参数。例如:

$ cat > /shared/share/config.site << EOF
: ${LDFLAGS=-L/shared/lib}
: ${CPPFLAGS=-I/share/include}
EOF

每当使用--prefix = / shared运行configure时,将读取config.site文件并设置默认值。