今天有学员问 MCScanX 安装问题,我试了下,果然有错误。

genek@GenekServer:~/software/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)
                      ^
makefile:2: recipe for target 'mcscanx' failed
make: *** [mcscanx] Error 1

这个错误的原因是,MCScanX 不支持64位系统。如果要在 64位上运行,需要修改下源代码。

只需要给 msa.h, dissect_multiple_alignment.h, and detect_collinear_tandem_arrays.h 这三个文件 前面添加

#include <unistd.h>

这就没问题了