今天有学员问 MCScanX 安装问题,我试了下,果然有错误。
make报错:
g++ struct.cc mcscan.cc read_data.cc out_utils.cc dagchainer.cc msa.cc permutation.cc -o MCScanX
msa.cc: In fun...
MCScanX 安装问题:
make报错:
g++ struct.cc mcscan.cc read_data.cc out_utils.cc dagchainer.cc msa.cc permutation.cc -o MCScanX
msa.cc: In function ‘void msa_main(const char*)’:
msa.cc:289:22: error: ‘chdir’ was not declared in this scope
if (chdir(html_fn)<0)
^
make: *** [mcscanx] Error 1
这个错误的原因是,MCScanX 不支持64位系统。如果要在 64位上运行,需要修改下源代码。
只需要给MCScanX 目录下的 msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h 这三个文件内容 最前面添加
#include <unistd.h>
正确的做法是用vi打开文件,分别在三个文件( msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h)的最前面添加:
而不是文件名开头,下面做法是错误的:
如果还报错,检查安装是的用户,不要是root用户:
不要切换到root安装,普通用户sudo安装就可以;
export CLASSPATH='.:/yourPath/MCScanX-master/downstream_analyses'