美文网首页
circAnno安装中的各种报错扫雷

circAnno安装中的各种报错扫雷

作者: vicLeo | 来源:发表于2020-02-25 19:50 被阅读0次

    报错一:error: macro "min" passed 3 arguments, but takes just 2 error: expected ‘)’ before ‘const’ 或 error: macro "max" passed 3 arguments, but takes just 2 error: expected ‘)’ before ‘const’

    In file included from /usr/include/c++/4.6/bits/char_traits.h:41:0,
                     from /usr/include/c++/4.6/ios:41,
                     from /usr/include/c++/4.6/istream:40,
                     from /share1/linux_1579/include/ospace/std/istream:13,
                     from /share1/linux_1579/include/ospace/osstd/iterator.h:20,
                     from /share1/linux_1579/include/ospace/osstd/list.h:16,
                     from /share1/linux_1579/include/ospace/std/list:15,
                     from ../../include/stl_tree.h:70,
                     from ../../include/stl_algobase.h:19,
                  
    
    /usr/include/c++/4.6/bits/ algorithmfwd.h:233:56: error: macro "min" passed 3 arguments, but takes just 2
    
    /usr/include/c++/4.6/bits/stl_algobase.h:254:56: error: macro "max" passed 3 arguments, but takes just 2
    
    

    解决方法:
    这个错误与代码本身或g++版本无关,只是因为出现了宏定义冲突,需要修改对应的XX.h文件:

    sudo gedit stl_tree.h
    sudo gedit stl_algobase.h
    sudo gedit algorithmfwd.h
    
    在对应的XX. h文件头文件后面,和文件自带的`#include<xxx>的中间添加:
    #include "xx.h"   **该文件自身带有的,勿动**
    #undef max       **你要添加的项
    #undef min        **你要添加的项
    #include <xxx>   **该文件自身带有的,勿动**
    保存,关闭,再make
    

    参考:juan131006
    [andrew_tu](https://blog.csdn.net/andrew_tu/article/details/7375698
    报错二:error: reference to ‘hash’ is ambiguous

    In file included from circAnno.cpp:29:0:
    circAnno.h:17:8: error: reference to ‘hash’ is ambiguous
     struct hash *readBed12(char *fileName, parameterInfo *paraInfo);
            ^~~~
    In file included from circAnno.cpp:9:0:
    ../../thirdUtils/kent/src/inc/hash.h:65:8: note: candidates are: struct hash
     struct hash
            ^~~~
    In file included from /usr/include/c++/7/bits/stl_bvector.h:1281:0,
                     from /usr/include/c++/7/vector:65,
                     from /usr/include/c++/7/queue:61,
                     from /usr/include/c++/7/bits/stl_algobase.h:68,
                     from /usr/include/c++/7/bits/char_traits.h:39,
                     from /usr/include/c++/7/ios:40,
                     from circAnno.cpp:17:
    /usr/include/c++/7/bits/functional_hash.h:58:12: note:                 template<class _Tp> struct std::hash
         struct hash;
                ^~~~
    circAnno.cpp:31:8: error: reference to ‘hash’ is ambiguous
     struct hash *
            ^~~~
    

    解决方法:打开/usr/include/c++/7/bits/functional_hash.h,

    sudo gedit functional_hash.h
    

    将其中unctional_hash的一个库注释掉其中
    #include hash那一部分,再make就可以了

    参考:MoreZeus 乐逍遥ing

    相关文章

      网友评论

          本文标题:circAnno安装中的各种报错扫雷

          本文链接:https://www.haomeiwen.com/subject/nysfchtx.html