build error with strelka_workflow-1.0.15

100 views
Skip to first unread message

Michal

unread,
Aug 15, 2017, 6:00:05 AM8/15/17
to strelka-discuss
Hi,

I am trying to install Strelka on a cluster.
./configure worked fine, but when I am trying to do "make", it fails.
Any idea how can I fix it?


g++ -c -O2 -Wall -Wextra -D_FILE_OFFSET_BITS=64 vcf_file_diff.cpp -o vcf_file_diff.o
vcf_file_diff.cpp: In member function 'void vcf_file::return_site_union(vcf_file&, std::map<std::pair<std::__cxx11::basic_string<char>, int>, std::pair<int, int> >&)':
vcf_file_diff.cpp:28:61: error: no matching function for call to 'make_pair(std::__cxx11::string&, int&)'
    CHROMPOS_to_filepos_pair[make_pair<string,int>(CHROM, POS)] = make_pair<int,int>(s, -1);
                                                             ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:28:61: note:   cannot convert 'CHROM' (type 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}') to type 'std::__cxx11::basic_string<char>&&'
    CHROMPOS_to_filepos_pair[make_pair<string,int>(CHROM, POS)] = make_pair<int,int>(s, -1);
                                                             ^
vcf_file_diff.cpp:42:70: error: no matching function for call to 'make_pair(std::__cxx11::string&, int&)'
   if (CHROMPOS_to_filepos_pair.find(make_pair<string,int>(CHROM, POS)) != CHROMPOS_to_filepos_pair.end())
                                                                     ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:42:70: note:   cannot convert 'CHROM' (type 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}') to type 'std::__cxx11::basic_string<char>&&'
   if (CHROMPOS_to_filepos_pair.find(make_pair<string,int>(CHROM, POS)) != CHROMPOS_to_filepos_pair.end())
                                                                     ^
vcf_file_diff.cpp:44:62: error: no matching function for call to 'make_pair(std::__cxx11::string&, int&)'
     CHROMPOS_to_filepos_pair[make_pair<string,int>(CHROM, POS)].second = s;
                                                              ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:44:62: note:   cannot convert 'CHROM' (type 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}') to type 'std::__cxx11::basic_string<char>&&'
     CHROMPOS_to_filepos_pair[make_pair<string,int>(CHROM, POS)].second = s;
                                                              ^
vcf_file_diff.cpp:48:62: error: no matching function for call to 'make_pair(std::__cxx11::string&, int&)'
     CHROMPOS_to_filepos_pair[make_pair<string,int>(CHROM, POS)] = make_pair<int,int>(-1, s);
                                                              ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:48:62: note:   cannot convert 'CHROM' (type 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}') to type 'std::__cxx11::basic_string<char>&&'
     CHROMPOS_to_filepos_pair[make_pair<string,int>(CHROM, POS)] = make_pair<int,int>(-1, s);
                                                              ^
vcf_file_diff.cpp: In member function 'void vcf_file::output_switch_error(const string&, vcf_file&)':
vcf_file_diff.cpp:785:96: error: no matching function for call to 'make_pair(std::__cxx11::basic_string<char>&, std::__cxx11::basic_string<char>&)'
 = make_pair<string,string>(prev_geno_file1[indv_count].first, genotype1.first);
                                                                              ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:785:74: note:   cannot convert 'prev_geno_file1.std::vector<_Tp, _Alloc>::operator[]<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >(((std::vector<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type)indv_count)).std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::first' (type 'std::__cxx11::basic_string<char>') to type 'std::__cxx11::basic_string<char>&&'
   file1_hap1 = make_pair<string,string>(prev_geno_file1[indv_count].first, genotype1.first);
                                                                     
vcf_file_diff.cpp:786:98: error: no matching function for call to 'make_pair(std::__cxx11::basic_string<char>&, std::__cxx11::basic_string<char>&)'
 make_pair<string,string>(prev_geno_file1[indv_count].second, genotype1.second);
                                                                              ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:786:74: note:   cannot convert 'prev_geno_file1.std::vector<_Tp, _Alloc>::operator[]<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >(((std::vector<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type)indv_count)).std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::second' (type 'std::__cxx11::basic_string<char>') to type 'std::__cxx11::basic_string<char>&&'
   file1_hap2 = make_pair<string,string>(prev_geno_file1[indv_count].second, genotype1.second);
                                                                     
vcf_file_diff.cpp:787:96: error: no matching function for call to 'make_pair(std::__cxx11::basic_string<char>&, std::__cxx11::basic_string<char>&)'
 = make_pair<string,string>(prev_geno_file2[indv_count].first, genotype2.first);
                                                                              ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/deque:60,
                 from vcf_file.h:15,
                 from vcf_file_diff.cpp:9:
/usr/include/c++/6/bits/stl_pair.h:425:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:425:5: note:   template argument deduction/substitution failed:
vcf_file_diff.cpp:787:74: note:   cannot convert 'prev_geno_file2.std::vector<_Tp, _Alloc>::operator[]<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >(((std::vector<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type)indv_count)).std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >::first' (type 'std::__cxx11::basic_string<char>') to type 'std::__cxx11::basic_string<char>&&'
   file2_hap1 = make_pair<string,string>(prev_geno_file2[indv_count].first, genotype2.first);
                                                                     
Makefile:47: recipe for target 'vcf_file_diff.o' failed
make[3]: *** [vcf_file_diff.o] Error 1
make[3]: Leaving directory '/mnt/lustre/hms-01/fs01/mdevir/downloads/strelka_workflow-1.0.15/redist/vcftools-r837/cpp'
/bin/sh: line 1: cd: perl: No such file or directory
Makefile:24: recipe for target 'install' failed
make[2]: *** [install] Error 1
make[2]: Leaving directory '/mnt/lustre/hms-01/fs01/mdevir/downloads/strelka_workflow-1.0.15/redist/vcftools-r837'
Makefile:40: recipe for target 'vcftools' failed
make[1]: *** [vcftools] Error 2
make[1]: Leaving directory '/mnt/lustre/hms-01/fs01/mdevir/downloads/strelka_workflow-1.0.15/redist'
Makefile:39: recipe for target 'build' failed
make: *** [build] Error 2

Thanks,
Michal.

Attila Gulyás-Kovács

unread,
Nov 21, 2017, 4:42:05 PM11/21/17
to strelka-discuss
The same "make" error occurred to me on Debian GNU/Linux 9 (stretch) 64-bit after "configure" was run successfully even though dependencies (g++ and zlib1g-dev) are satisfied.  Interestingly I don't recall such problem when I installed strelka on Ubuntu 16.04 LTS.

Here's the error of "make"
vcf_file_diff.cpp:787:96: error: no matching function for call to ‘make_pair(std::__cxx11::basic_string<char>&, std::__cxx11::basic_string<char>&)’

Cheers,

Attila

Chris Saunders

unread,
Nov 22, 2017, 12:30:15 PM11/22/17
to strelka-discuss
I'm not certain when we could provide an update for this issue in the original strelka release. I would encourage you to consider transitioning to strelka2, available here:


If strelka2 is not an option for you -- the most practical quick fix for this issue may be to install an older gcc version and compile with that.

Attila Gulyás-Kovács

unread,
Nov 22, 2017, 12:44:12 PM11/22/17
to strelka-discuss
Hi Chris,

I look forward to using strelka2, which by the way could be installed seamlessly.  But I may also need v1 for follow-up analyses.  Is there a legacy mode of strelka2 that behaves like v1?  Or is an earlier subversion of v1 available (pre-v1.0.15)?

Thank you,

Attila
Reply all
Reply to author
Forward
0 new messages