大家好,我想使用【用k-mer分析进行基因组调查:(四)用GenomeScope评估基因组特征】这篇文章里提到的smudge_pairs功能。发现需要安装另外一个KMC软件【tbenavi1/KMC】。该软件不能用conda直接安装,所以我从git hub上把它下载后【git clone https://github.com/tbenavi1/KMC.git 】用make命令安装,但是提示如下错误,不知道应该怎么解决【备注:我是在自己创建的环境中进行操作的】
g++ -lm -static -O3 -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -st
d=c++11 -o bin/kmc kmer_counter/kmer_counter.o kmer_counter/mmer.o kmer_counter/mem_disk_file.o kmer_counter/rev_byte.o kmer_counter/bkb_writer.o kmer_counter/cpu_info.o kmer_counter/bkb_reader.o kmer_counter/fastq_reader.o kmer_counter/timer.o kmer_counter/develop.o kmer_counter/kb_completer.o kmer_counter/kb_storer.o kmer_counter/kmer.o kmer_counter/splitter.o kmer_counter/kb_collector.o kmer_counter/raduls_sse2.o kmer_counter/raduls_sse41.o kmer_counter/raduls_avx2.o kmer_counter/raduls_avx.o kmer_counter/libs/libz.a kmer_counter/libs/libbz2.a
mkdir -p bin
g++ -lm -static -O3 -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -std=c++11 -o bin/kmc_dump kmc_dump/kmc_dump.o kmc_dump/nc_utils.o kmc_api/mmer.o kmc_api/kmc_file.o kmc_api/kmer_api.o
mkdir -p bin
g++ -lm -static -O3 -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -std=c++14 -o bin/kmc_tools kmc_tools/kmc_header.o kmc_tools/kmc_tools.o kmc_tools/nc_utils.o kmc_tools/parameters_parser.o kmc_tools/parser.o kmc_tools/tokenizer.o kmc_tools/fastq_filter.o kmc_tools/fastq_reader.o kmc_tools/fastq_writer.o kmc_tools/percent_progress.o kmc_api/mmer.o kmc_api/kmc_file.o kmc_api/kmer_api.o kmc_tools/libs/libz.a kmc_tools/libs/libbz2.a
mkdir -p bin
g++ -fPIC -Wall -shared -std=c++11 -O3 py_kmc_api/py_kmc_api.cpp py_kmc_api/kmc_file.o py_kmc_api/kmer_api.o py_kmc_api/mmer.o \
-I kmc_api \
-I py_kmc_api/libs/pybind11/include \
-I `python3 -c "import sysconfig;print(sysconfig.get_paths()['include'])"` \
-o bin/py_kmc_api`python3-config --extension-suffix`
In file included from py_kmc_api/libs/pybind11/include/pybind11/cast.h:16:0,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
py_kmc_api/libs/pybind11/include/pybind11/detail/internals.h: In function ‘pybind11::detail::internals& pybind11::detail::get_internals()’:
py_kmc_api/libs/pybind11/include/pybind11/detail/internals.h:200:28: warning: ‘void PyEval_InitThreads()’ is deprecated [-Wdeprecated-declarations]
PyEval_InitThreads();
^
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:95:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/ceval.h:132:37: note: declared here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^~~~~~~~~~~~~~~~~~
In file included from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13:0,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
py_kmc_api/libs/pybind11/include/pybind11/cast.h: In function ‘std::__cxx11::string pybind11::detail::error_string()’:
py_kmc_api/libs/pybind11/include/pybind11/cast.h:442:36: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
" " + handle(frame->f_code->co_filename).cast<std::string>() +
^~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13:0,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
py_kmc_api/libs/pybind11/include/pybind11/cast.h:442:75: error: expected primary-expression before ‘>’ token
" " + handle(frame->f_code->co_filename).cast<std::string>() +
^
py_kmc_api/libs/pybind11/include/pybind11/cast.h:442:77: error: expected primary-expression before ‘)’ token
" " + handle(frame->f_code->co_filename).cast<std::string>() +
^
py_kmc_api/libs/pybind11/include/pybind11/cast.h:444:29: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
handle(frame->f_code->co_name).cast<std::string>() + "\n";
^~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13:0,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
py_kmc_api/libs/pybind11/include/pybind11/cast.h:444:64: error: expected primary-expression before ‘>’ token
handle(frame->f_code->co_name).cast<std::string>() + "\n";
^
py_kmc_api/libs/pybind11/include/pybind11/cast.h:444:66: error: expected primary-expression before ‘)’ token
handle(frame->f_code->co_name).cast<std::string>() + "\n";
^
py_kmc_api/libs/pybind11/include/pybind11/cast.h:445:26: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
frame = frame->f_back;
^~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from py_kmc_api/py_kmc_api.cpp:1:0:
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h: In function ‘pybind11::function pybind11::get_type_overload(const void*, const pybind11::detail::type_info*, const char*)’:
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2021:49: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘frame’; did you mean ‘cframe’?
PyFrameObject *frame = PyThreadState_Get()->frame;
^~~~~
cframe
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2022:41: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
if (frame && (std::string) str(frame->f_code->co_name) == name &&
^~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from py_kmc_api/py_kmc_api.cpp:1:0:
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2023:14: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
frame->f_code->co_argcount > 0) {
^~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from py_kmc_api/py_kmc_api.cpp:1:0:
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2026:18: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
^~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:35:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2026:52: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
^
/home/ug1102/.conda/envs/test/include/python3.12/tupleobject.h:27:18: note: in expansion of macro ‘PyType_FastSubclass’
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS)
^~~~~~~~~~~~~~~~~~~
/home/ug1102/.conda/envs/test/include/python3.12/object.h:194:28: note: in expansion of macro ‘_Py_CAST’
#define _PyObject_CAST(op) _Py_CAST(PyObject*, (op))
^~~~~~~~
/home/ug1102/.conda/envs/test/include/python3.12/object.h:223:31: note: in expansion of macro ‘_PyObject_CAST’
# define Py_TYPE(ob) Py_TYPE(_PyObject_CAST(ob))
^~~~~~~~~~~~~~
/home/ug1102/.conda/envs/test/include/python3.12/tupleobject.h:27:38: note: in expansion of macro ‘Py_TYPE’
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS)
^~~~~~~
/home/ug1102/.conda/envs/test/include/python3.12/cpython/tupleobject.h:18:13: note: in expansion of macro ‘PyTuple_Check’
(assert(PyTuple_Check(op)), _Py_CAST(PyTupleObject*, (op)))
^~~~~~~~~~~~~
/home/ug1102/.conda/envs/test/include/python3.12/cpython/tupleobject.h:28:38: note: in expansion of macro ‘_PyTuple_CAST’
#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)])
^~~~~~~~~~~~~
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2026:30: note: in expansion of macro ‘PyTuple_GET_ITEM’
frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
^~~~~~~~~~~~~~~~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:38:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2026:52: error: invalid use of incomplete type ‘PyFrameObject {aka struct _frame}’
frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
^
/home/ug1102/.conda/envs/test/include/python3.12/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’
#define _Py_CAST(type, expr) ((type)(expr))
^~~~
/home/ug1102/.conda/envs/test/include/python3.12/cpython/tupleobject.h:28:38: note: in expansion of macro ‘_PyTuple_CAST’
#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)])
^~~~~~~~~~~~~
py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:2026:30: note: in expansion of macro ‘PyTuple_GET_ITEM’
frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
^~~~~~~~~~~~~~~~
In file included from /home/ug1102/.conda/envs/test/include/python3.12/Python.h:42:0,
from py_kmc_api/libs/pybind11/include/pybind11/detail/common.h:112,
from py_kmc_api/libs/pybind11/include/pybind11/pytypes.h:12,
from py_kmc_api/libs/pybind11/include/pybind11/cast.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/attr.h:13,
from py_kmc_api/libs/pybind11/include/pybind11/pybind11.h:44,
from py_kmc_api/py_kmc_api.cpp:1:
/home/ug1102/.conda/envs/test/include/python3.12/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject {aka struct _frame}’
typedef struct _frame PyFrameObject;
^~~~~~
make: *** [makefile:111: py_kmc_api] Error 1