ViennaRNA的安装使用

文章目录

安装最新版

可以在github链接找到最新版本,结下来我会以安装最新版,作为例子进行介绍

下载最新版:

bash 复制代码
https://github.com/ViennaRNA/ViennaRNA/releases/download/v2.6.4/ViennaRNA-2.6.4.tar.gz

解压并且安装(官网安装)

bash 复制代码
tar -zxvf ViennaRNA-2.6.4.tar.gz
cd ViennaRNA-2.6.4
./configure --prefix=/home/xxx/ViennaRNA-2.6.4
make install

报错并相关的解决方法:

存在perl的问题,利用conda 安装新的perl,不用系统自身的。

问题类似这个blog:blog

bash 复制代码
conda install -c conda-forge perl

编译的时候strings.h文件中的strdup函数声明冲突。

问题:

make[1]: Entering directory /home/xxxx/ViennaRNA-2.6.4/src/RNAxplorer' Making install in src make[2]: Entering directory /home/xxxx/ViennaRNA-2.6.4/src/RNAxplorer/src'

CC RNAxplorer_cmdl.o

CC RNAxplorer.o

In file included from /usr/include/string.h:633,

from RNAxplorer.c:3:

.../.../.../src/ViennaRNA/utils/strings.h:64:1: error: expected identifier or '(' before 'extension '

strdup(const char *s);

^~~~~~

make[2]: *** [RNAxplorer.o] Error 1

解释:

这个错误信息表明在编译ViennaRNA包的RNAxplorer部分时遇到了问题。错误是由于strings.h文件中的strdup函数声明冲突。在包含了系统的string.h头文件之后,strdup的声明与ViennaRNA包自己的strings.h中的声明发生了冲突。

这可能是因为strdup是一个标准的库函数,而在某些系统中,比如GNU libc,它是非标准的扩展,可能会被条件编译指令保护起来。

因此:
检查ViennaRNA的strings.h是否有条件编译指令来防止与标准库的strdup冲突。

1。 找到strings.h文件的位置。如果您已经知道ViennaRNA的安装目录,您可以在其中搜索该文件。

2。 打开strings.h文件并查看文件内容。您可以使用文本编辑器打开它,例如:
vim /path/to/ViennaRNA/src/ViennaRNA/utils/strings.h

3。在文件中查找strdup相关的定义和声明。特别是寻找#ifdef或#ifndef预处理器指令,这些指令可能用来检查某个宏是否已定义,以决定是否需要声明strdup。例如:
#ifndef HAVE_STRDUP
char *
strdup(const char *s);
#endif
分析原因:
既然strings.h中的strdup函数是用条件编译宏#ifndef HAVE_STRDUP包围的,这意味着如果HAVE_STRDUP没有在编译前定义,ViennaRNA就会尝试自己声明strdup函数。这通常会导致和系统的string.h头文件中的声明冲突。

4。 解决办法:
添加编译选项:
如果您直接使用make来编译ViennaRNA,可以尝试在make命令中添加CFLAGS:
make CFLAGS='-DHAVE_STRDUP'
这会将HAVE_STRDUP定义传递给编译器。

找不到链接器(ld)找不到系统上的LAPACK库(-llapack)

1) 首先利用conda 安装

conda install -c conda-forge liblapack

2)需要将包含LAPACK库的目录添加到您的LD_LIBRARY_PATH环境变量中

bash 复制代码
export LD_LIBRARY_PATH=/home/xxxx/condaenvs/xxxx/lib:$LD_LIBRARY_PATH

就是将下面两个文件放入LD_LIBRARY_PATH中:
原因:
liblapack.so 和 liblapack.so.3 是LAPACK库在Linux系统中的共享库文件。共享库(或动态链接库)是一种包含可以被其他程序调用的代码和数据的文件。在这种情况下,LAPACK库的功能被封装在这些共享库文件中,以便其他程序可以在运行时链接和使用它们。

在Linux系统中,共享库文件通常有以下几种类型:

.so 文件:这是一个"共享对象"(shared object)文件,它是在编译时用于动态链接的文件。
版本化的 .so 文件:例如 liblapack.so.3,这表示库的特定版本,确保软件链接到正确的库版本。这样可以防止软件更新后因为库版本不兼容而产生问题。
当链接器在编译过程中发出错误,提示找不到 -llapack 时,它通常是在寻找名为 liblapack.so 的文件。如果您已经有了这些文件,那么您可能需要确保它们位于链接器查找共享库的路径上,或者在编译时指定它们的位置。

如果这些文件不在标准的库路径下,您可以:

使用 -L 选项在编译时指定库的路径。
将库的路径添加到 LD_LIBRARY_PATH 环境变量中。
配置 /etc/ld.so.conf 或 /etc/ld.so.conf.d/ 中的文件,然后运行 ldconfig 来更新运行时链接器的配置。

但是好像还是会出现相同的错误当重新make install

bash 复制代码
ldconfig -p | grep lapack
如果运行 ldconfig -p | grep lapack 没有任何输出,说明 liblapack.so 没有在系统的链接器缓存中注册。这可能是因为:
1. LAPACK库没有安装在标准库路径:系统链接器可能只会自动扫描某些标准路径(如 /lib, /usr/lib, /usr/local/lib),如果LAPACK库不在这些路径中,链接器就不会自动找到它。
2. /etc/ld.so.conf 和 /etc/ld.so.conf.d/ 没有正确配置:这些文件控制了链接器应该扫描哪些路径。如果您将库安装在非标准路径,您需要将该路径添加到这些配置文件中,然后运行 sudo ldconfig 来更新链接器的缓存。

3. 运行 ldconfig 需要管理员权限:更新系统链接器缓存通常需要管理员权限。确保您使用 sudo ldconfig 来刷新缓存。
综上所有错误,提供的最终的解决措施

在使用 ./configure 脚本配置源代码包时,您可以通过设置环境变量 LDFLAGS 来指定链接器应该在哪里查找库文件。LDFLAGS 可以用来添加链接器的选项,-L 用于添加库的搜索路径,-Wl,-rpath 用于设置运行时的库搜索路径。

以下是如何在 ./configure 命令中指定库路径的步骤:

1。 设置 LDFLAGS:

bash 复制代码
LDFLAGS="-L/home/xxxx/condaenvs/xxxxx/lib -Wl,-rpath,/home/xxxx/condaenvs/xxxx/lib"

2。运行 ./configure:

bash 复制代码
./configure LDFLAGS="$LDFLAGS" --prefix=/home/xxxx/ViennaRNA-2.6.4

3。编译并安装:

bash 复制代码
make CFLAGS='-DHAVE_STRDUP'
make install

确保在运行 ./configure 命令之前,已经设置了 LDFLAGS 环境变量,并且包含了LAPACK库的正确路径。

successfully!!!

所有可执行文件都在:

/home/xxxx/ViennaRNA-2.6.4/bin

总结

一般需要编译的时候,可以先安装conda环境,安装gcc/g++,安装perl等重要信息.

相关推荐
梁辰兴25 天前
Cisco Packet Tracer 8.0 安装配置教程(附安装包和配置程序)
网络·软件安装·cisco·思科模拟器
梁辰兴1 个月前
Windows Python安装和配置教程
开发语言·windows·python·软件安装
云计算练习生2 个月前
软件安装攻略:EmEditor编辑器下载安装与使用
编辑器·软件安装·emeditor·计算机软件
x-cmd3 个月前
x-cmd mod | x scoop - Windows 开源包管理工具
windows·开源·软件安装·命令行·powershell·包管理·winget
麦克bookAPP3 个月前
Final Cut Pro Mac(fcpx专业视频剪辑软件) 10.8 中文版安装
macos·mac·软件安装·final cut pro
nanke_yh3 个月前
ArcGIS10.8 安装教程
arcgis·软件安装
盲敲代码的阿豪4 个月前
Typora 1.5.8 版本安装下载教程 (轻量级 Markdown 编辑器),图文步骤详解,免费领取(软件可激活使用)
编辑器·typora·软件安装
电脑维修MATOU4 个月前
【彻底禁用Windows系统的自动更新,让电脑使用更顺心!】
软件安装·电脑维修matou·电脑维修小马·电脑远程维修服务·windows系统小技巧·电脑维修服务
༺ 雪霁6 个月前
AI翻唱+视频剪辑全流程实战
人工智能·笔记·adobe·软件安装·ai翻唱
༺ 雪霁6 个月前
Adobe Premiere Pro安装
笔记·软件安装