我正在尝试编译FM-Index V2,但在Mac和Linux上都会出错:
make
make -C ./ds_ssort/; cp ./ds_ssort/ds_ssort.a .
make[1]: Entering directory `/storage1/maxwell/maasha/Install/src/fmindexV2/ds_ssort'
gcc -c -g -O3 -fomit-frame-pointer -W -Wall -Winline -DDEBUG=0 -DNDEBUG=1 shallow.c -o shallow.o
shallow.c: In function ‘shallow_mkq’:
shallow.c:90: error: nested function ‘vecswap2’ declared but never defined
shallow.c: In function ‘shallow_mkq16’:
shallow.c:184: error: nested function ‘vecswap2’ declared but never defined
shallow.c: In function ‘shallow_mkq32’:
shallow.c:262: error: nested function ‘vecswap2’ declared but never defined
shallow.c: In function ‘shallow_inssort_lcp’:
shallow.c:496: error: nested function ‘cmp_unrolled_shallow_lcp’ declared but never defined
make[1]: *** [shallow.o] Error 1
make[1]: Leaving directory `/storage1/maxwell/maasha/Install/src/fmindexV2/ds_ssort'
cp: cannot stat `./ds_ssort/ds_ssort.a': No such file or directory
make: *** [ds_ssortr] Error 1
如何解决这个问题? tarball在这里:
http://pizzachili.di.unipi.it/indexes/FM-indexV2/fmindexV2.tgz
答案 0 :(得分:1)
我刚才看过这个,所以我的回忆可能是错的,但我认为FM-Index代码使用其他一个索引代码中定义的函数。看看Run-Length FM Index。如果它不存在,那就在其他地方捅一下。我很确定函数是在某处定义的。
答案 1 :(得分:1)
我删除了重新声明函数的代码中的行。它对我有用。 之后,我必须编辑makefile并将标志-lm放入生成可执行文件。