regex_search.hpp:56: undefined reference to `boost::re_detail_106100::perl_matcher











up vote
1
down vote

favorite
1












After updateting from boost 1.58 to 1.61, linking fails with the following error:



In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/regex_search.hpp:56: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
CMakeFiles/havoc.dir/src/helpers.cpp.o: In function `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/perl_matcher.hpp:382: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'


I use cmake to link against boost like this:



find_package(Boost COMPONENTS chrono system filesystem thread regex random REQUIRED)    
target_link_libraries (myprog
${Boost_REGEX_LIBRARY}
)


I searched the changelog of boost but could not find anything specific that might cause the cmake linking to fail. Like I said: it works perfectly with 1.58.



Is libboost-regex1.61.0 broken or did the linking change somehow?



Update: 14.11.2016:
The Changelog of Boost shows that the namespace was renamed from "re_detail" to "BOOST_REGEX_DETAIL_NS".



I use Kali Rolloing release and it seems to me that the installedboost lib 1.61 does not match the boost 1.61 source. I will try to install the lib manually and check if this solves the problem.



I updated to 1.61 and afterwards to 1.62. To problem remains.
I checked my linker command and ensured that "-lboost_regex" is present at the end of the line.
I can only think of two problems:




  1. My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62

  2. The boost_regex lib in Kali is outdated while the header are updated.


I have checked my libraries and they seem to look good:



newgen@kali:/usr/lib/i386-linux-gnu$ ls -al | grep boost | grep regex
-rw-r--r-- 1 root root 2390702 Nov 12 19:46 libboost_regex.a
lrwxrwxrwx 1 root root 24 Nov 12 19:46 libboost_regex.so -> libboost_regex.so.1.62.0
-rw-r--r-- 1 root root 1107284 Nov 12 19:46 libboost_regex.so.1.62.0


Update: 09.12.2016:
I am no export on shared objects but a hint from the boost developers points to a mess up in the packaging. I tried to look into the current library and I would guess that the lib is v1.58 while the headers are v1.62.



/usr/lib/i386-linux-gnu$ nm --dynamic libboost_regex.so.1.62.0 | grep   regex_search

0005d4e0 W _ZN5boost12regex_searchINS_16re_detail_10620016mapfile_iteratorESaINS_9sub_matchIS2_EEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SA_RNS_13match_resultsISA_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_flagsE


Opened a Bug in the Kali Linux Bug Tracker:
https://bugs.kali.org/view.php?id=3765










share|improve this question
























  • Had the same issue when I compiled with 1.61 headers and linker found 1.58 libs instead of the new 1.61 libs
    – SBF
    Dec 4 '16 at 14:04












  • Apt-get update ; apt-get upgrade installed version 1.62. Still the same issue. Where does the linker find the 1.58 libs? I thought I removed them all?
    – newgen
    Dec 8 '16 at 14:41








  • 1




    See if there are 1.58 libs with sudo find / -name libboost_regex.* - I had a mix of 1.58 and 1.61 and when I renamed the 1.58 ones linking was OK
    – SBF
    Dec 10 '16 at 22:19












  • @newgen Could you solver the problem? I have the same issue!
    – Shakiba Moshiri
    Feb 2 '17 at 15:47










  • Yes, I solved the problem. I downloaded, compiled and installed version 1.62. Then, I manually overwrote the kali linux .so files by copying the manually installed version to the places in the kali fs. I cannot remember what exactly I did. However, after that process, it worked. I now have version 1.62 detected and it compiled. The Kali libboost_regex.so.1.62.0 is definitely broken, but their support shut my ticket without following my described steps.
    – newgen
    Feb 3 '17 at 16:40















up vote
1
down vote

favorite
1












After updateting from boost 1.58 to 1.61, linking fails with the following error:



In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/regex_search.hpp:56: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
CMakeFiles/havoc.dir/src/helpers.cpp.o: In function `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/perl_matcher.hpp:382: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'


I use cmake to link against boost like this:



find_package(Boost COMPONENTS chrono system filesystem thread regex random REQUIRED)    
target_link_libraries (myprog
${Boost_REGEX_LIBRARY}
)


I searched the changelog of boost but could not find anything specific that might cause the cmake linking to fail. Like I said: it works perfectly with 1.58.



Is libboost-regex1.61.0 broken or did the linking change somehow?



Update: 14.11.2016:
The Changelog of Boost shows that the namespace was renamed from "re_detail" to "BOOST_REGEX_DETAIL_NS".



I use Kali Rolloing release and it seems to me that the installedboost lib 1.61 does not match the boost 1.61 source. I will try to install the lib manually and check if this solves the problem.



I updated to 1.61 and afterwards to 1.62. To problem remains.
I checked my linker command and ensured that "-lboost_regex" is present at the end of the line.
I can only think of two problems:




  1. My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62

  2. The boost_regex lib in Kali is outdated while the header are updated.


I have checked my libraries and they seem to look good:



newgen@kali:/usr/lib/i386-linux-gnu$ ls -al | grep boost | grep regex
-rw-r--r-- 1 root root 2390702 Nov 12 19:46 libboost_regex.a
lrwxrwxrwx 1 root root 24 Nov 12 19:46 libboost_regex.so -> libboost_regex.so.1.62.0
-rw-r--r-- 1 root root 1107284 Nov 12 19:46 libboost_regex.so.1.62.0


Update: 09.12.2016:
I am no export on shared objects but a hint from the boost developers points to a mess up in the packaging. I tried to look into the current library and I would guess that the lib is v1.58 while the headers are v1.62.



/usr/lib/i386-linux-gnu$ nm --dynamic libboost_regex.so.1.62.0 | grep   regex_search

0005d4e0 W _ZN5boost12regex_searchINS_16re_detail_10620016mapfile_iteratorESaINS_9sub_matchIS2_EEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SA_RNS_13match_resultsISA_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_flagsE


Opened a Bug in the Kali Linux Bug Tracker:
https://bugs.kali.org/view.php?id=3765










share|improve this question
























  • Had the same issue when I compiled with 1.61 headers and linker found 1.58 libs instead of the new 1.61 libs
    – SBF
    Dec 4 '16 at 14:04












  • Apt-get update ; apt-get upgrade installed version 1.62. Still the same issue. Where does the linker find the 1.58 libs? I thought I removed them all?
    – newgen
    Dec 8 '16 at 14:41








  • 1




    See if there are 1.58 libs with sudo find / -name libboost_regex.* - I had a mix of 1.58 and 1.61 and when I renamed the 1.58 ones linking was OK
    – SBF
    Dec 10 '16 at 22:19












  • @newgen Could you solver the problem? I have the same issue!
    – Shakiba Moshiri
    Feb 2 '17 at 15:47










  • Yes, I solved the problem. I downloaded, compiled and installed version 1.62. Then, I manually overwrote the kali linux .so files by copying the manually installed version to the places in the kali fs. I cannot remember what exactly I did. However, after that process, it worked. I now have version 1.62 detected and it compiled. The Kali libboost_regex.so.1.62.0 is definitely broken, but their support shut my ticket without following my described steps.
    – newgen
    Feb 3 '17 at 16:40













up vote
1
down vote

favorite
1









up vote
1
down vote

favorite
1






1





After updateting from boost 1.58 to 1.61, linking fails with the following error:



In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/regex_search.hpp:56: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
CMakeFiles/havoc.dir/src/helpers.cpp.o: In function `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/perl_matcher.hpp:382: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'


I use cmake to link against boost like this:



find_package(Boost COMPONENTS chrono system filesystem thread regex random REQUIRED)    
target_link_libraries (myprog
${Boost_REGEX_LIBRARY}
)


I searched the changelog of boost but could not find anything specific that might cause the cmake linking to fail. Like I said: it works perfectly with 1.58.



Is libboost-regex1.61.0 broken or did the linking change somehow?



Update: 14.11.2016:
The Changelog of Boost shows that the namespace was renamed from "re_detail" to "BOOST_REGEX_DETAIL_NS".



I use Kali Rolloing release and it seems to me that the installedboost lib 1.61 does not match the boost 1.61 source. I will try to install the lib manually and check if this solves the problem.



I updated to 1.61 and afterwards to 1.62. To problem remains.
I checked my linker command and ensured that "-lboost_regex" is present at the end of the line.
I can only think of two problems:




  1. My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62

  2. The boost_regex lib in Kali is outdated while the header are updated.


I have checked my libraries and they seem to look good:



newgen@kali:/usr/lib/i386-linux-gnu$ ls -al | grep boost | grep regex
-rw-r--r-- 1 root root 2390702 Nov 12 19:46 libboost_regex.a
lrwxrwxrwx 1 root root 24 Nov 12 19:46 libboost_regex.so -> libboost_regex.so.1.62.0
-rw-r--r-- 1 root root 1107284 Nov 12 19:46 libboost_regex.so.1.62.0


Update: 09.12.2016:
I am no export on shared objects but a hint from the boost developers points to a mess up in the packaging. I tried to look into the current library and I would guess that the lib is v1.58 while the headers are v1.62.



/usr/lib/i386-linux-gnu$ nm --dynamic libboost_regex.so.1.62.0 | grep   regex_search

0005d4e0 W _ZN5boost12regex_searchINS_16re_detail_10620016mapfile_iteratorESaINS_9sub_matchIS2_EEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SA_RNS_13match_resultsISA_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_flagsE


Opened a Bug in the Kali Linux Bug Tracker:
https://bugs.kali.org/view.php?id=3765










share|improve this question















After updateting from boost 1.58 to 1.61, linking fails with the following error:



In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/regex_search.hpp:56: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
CMakeFiles/havoc.dir/src/helpers.cpp.o: In function `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/perl_matcher.hpp:382: undefined reference to `boost::re_detail_106100::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'


I use cmake to link against boost like this:



find_package(Boost COMPONENTS chrono system filesystem thread regex random REQUIRED)    
target_link_libraries (myprog
${Boost_REGEX_LIBRARY}
)


I searched the changelog of boost but could not find anything specific that might cause the cmake linking to fail. Like I said: it works perfectly with 1.58.



Is libboost-regex1.61.0 broken or did the linking change somehow?



Update: 14.11.2016:
The Changelog of Boost shows that the namespace was renamed from "re_detail" to "BOOST_REGEX_DETAIL_NS".



I use Kali Rolloing release and it seems to me that the installedboost lib 1.61 does not match the boost 1.61 source. I will try to install the lib manually and check if this solves the problem.



I updated to 1.61 and afterwards to 1.62. To problem remains.
I checked my linker command and ensured that "-lboost_regex" is present at the end of the line.
I can only think of two problems:




  1. My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62

  2. The boost_regex lib in Kali is outdated while the header are updated.


I have checked my libraries and they seem to look good:



newgen@kali:/usr/lib/i386-linux-gnu$ ls -al | grep boost | grep regex
-rw-r--r-- 1 root root 2390702 Nov 12 19:46 libboost_regex.a
lrwxrwxrwx 1 root root 24 Nov 12 19:46 libboost_regex.so -> libboost_regex.so.1.62.0
-rw-r--r-- 1 root root 1107284 Nov 12 19:46 libboost_regex.so.1.62.0


Update: 09.12.2016:
I am no export on shared objects but a hint from the boost developers points to a mess up in the packaging. I tried to look into the current library and I would guess that the lib is v1.58 while the headers are v1.62.



/usr/lib/i386-linux-gnu$ nm --dynamic libboost_regex.so.1.62.0 | grep   regex_search

0005d4e0 W _ZN5boost12regex_searchINS_16re_detail_10620016mapfile_iteratorESaINS_9sub_matchIS2_EEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SA_RNS_13match_resultsISA_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_flagsE


Opened a Bug in the Kali Linux Bug Tracker:
https://bugs.kali.org/view.php?id=3765







c++ regex boost






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 9 '16 at 20:30

























asked Oct 24 '16 at 18:56









newgen

614




614












  • Had the same issue when I compiled with 1.61 headers and linker found 1.58 libs instead of the new 1.61 libs
    – SBF
    Dec 4 '16 at 14:04












  • Apt-get update ; apt-get upgrade installed version 1.62. Still the same issue. Where does the linker find the 1.58 libs? I thought I removed them all?
    – newgen
    Dec 8 '16 at 14:41








  • 1




    See if there are 1.58 libs with sudo find / -name libboost_regex.* - I had a mix of 1.58 and 1.61 and when I renamed the 1.58 ones linking was OK
    – SBF
    Dec 10 '16 at 22:19












  • @newgen Could you solver the problem? I have the same issue!
    – Shakiba Moshiri
    Feb 2 '17 at 15:47










  • Yes, I solved the problem. I downloaded, compiled and installed version 1.62. Then, I manually overwrote the kali linux .so files by copying the manually installed version to the places in the kali fs. I cannot remember what exactly I did. However, after that process, it worked. I now have version 1.62 detected and it compiled. The Kali libboost_regex.so.1.62.0 is definitely broken, but their support shut my ticket without following my described steps.
    – newgen
    Feb 3 '17 at 16:40


















  • Had the same issue when I compiled with 1.61 headers and linker found 1.58 libs instead of the new 1.61 libs
    – SBF
    Dec 4 '16 at 14:04












  • Apt-get update ; apt-get upgrade installed version 1.62. Still the same issue. Where does the linker find the 1.58 libs? I thought I removed them all?
    – newgen
    Dec 8 '16 at 14:41








  • 1




    See if there are 1.58 libs with sudo find / -name libboost_regex.* - I had a mix of 1.58 and 1.61 and when I renamed the 1.58 ones linking was OK
    – SBF
    Dec 10 '16 at 22:19












  • @newgen Could you solver the problem? I have the same issue!
    – Shakiba Moshiri
    Feb 2 '17 at 15:47










  • Yes, I solved the problem. I downloaded, compiled and installed version 1.62. Then, I manually overwrote the kali linux .so files by copying the manually installed version to the places in the kali fs. I cannot remember what exactly I did. However, after that process, it worked. I now have version 1.62 detected and it compiled. The Kali libboost_regex.so.1.62.0 is definitely broken, but their support shut my ticket without following my described steps.
    – newgen
    Feb 3 '17 at 16:40
















Had the same issue when I compiled with 1.61 headers and linker found 1.58 libs instead of the new 1.61 libs
– SBF
Dec 4 '16 at 14:04






Had the same issue when I compiled with 1.61 headers and linker found 1.58 libs instead of the new 1.61 libs
– SBF
Dec 4 '16 at 14:04














Apt-get update ; apt-get upgrade installed version 1.62. Still the same issue. Where does the linker find the 1.58 libs? I thought I removed them all?
– newgen
Dec 8 '16 at 14:41






Apt-get update ; apt-get upgrade installed version 1.62. Still the same issue. Where does the linker find the 1.58 libs? I thought I removed them all?
– newgen
Dec 8 '16 at 14:41






1




1




See if there are 1.58 libs with sudo find / -name libboost_regex.* - I had a mix of 1.58 and 1.61 and when I renamed the 1.58 ones linking was OK
– SBF
Dec 10 '16 at 22:19






See if there are 1.58 libs with sudo find / -name libboost_regex.* - I had a mix of 1.58 and 1.61 and when I renamed the 1.58 ones linking was OK
– SBF
Dec 10 '16 at 22:19














@newgen Could you solver the problem? I have the same issue!
– Shakiba Moshiri
Feb 2 '17 at 15:47




@newgen Could you solver the problem? I have the same issue!
– Shakiba Moshiri
Feb 2 '17 at 15:47












Yes, I solved the problem. I downloaded, compiled and installed version 1.62. Then, I manually overwrote the kali linux .so files by copying the manually installed version to the places in the kali fs. I cannot remember what exactly I did. However, after that process, it worked. I now have version 1.62 detected and it compiled. The Kali libboost_regex.so.1.62.0 is definitely broken, but their support shut my ticket without following my described steps.
– newgen
Feb 3 '17 at 16:40




Yes, I solved the problem. I downloaded, compiled and installed version 1.62. Then, I manually overwrote the kali linux .so files by copying the manually installed version to the places in the kali fs. I cannot remember what exactly I did. However, after that process, it worked. I now have version 1.62 detected and it compiled. The Kali libboost_regex.so.1.62.0 is definitely broken, but their support shut my ticket without following my described steps.
– newgen
Feb 3 '17 at 16:40












1 Answer
1






active

oldest

votes

















up vote
1
down vote













The boost 1.61 (and higher) are compiled with newer compilers, which use the _GLIBCXX_USE_CXX11_ABI=1 .. heh ABI. Meaning that for -std=c++11 std::basic_string... becomes std::__cxx11::basic_string... (and likewise for std::list; see the gcc Dual ABI documentation.



Since your linker error claims there is a missing symbol that contains std::string (which is short for std::basic_string<char,std::char_traits<char>,std::allocator<char>>), you are either compiling with a compiler that is too old and uses ABI 0, or you are even compiling explicitly with -D_GLIBCXX_USE_CXX11_ABI=0.



Either way, adding -D_GLIBCXX_USE_CXX11_ABI=1 to your CXXFLAGS should solve the problem.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f40225571%2fregex-search-hpp56-undefined-reference-to-boostre-detail-106100perl-match%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote













    The boost 1.61 (and higher) are compiled with newer compilers, which use the _GLIBCXX_USE_CXX11_ABI=1 .. heh ABI. Meaning that for -std=c++11 std::basic_string... becomes std::__cxx11::basic_string... (and likewise for std::list; see the gcc Dual ABI documentation.



    Since your linker error claims there is a missing symbol that contains std::string (which is short for std::basic_string<char,std::char_traits<char>,std::allocator<char>>), you are either compiling with a compiler that is too old and uses ABI 0, or you are even compiling explicitly with -D_GLIBCXX_USE_CXX11_ABI=0.



    Either way, adding -D_GLIBCXX_USE_CXX11_ABI=1 to your CXXFLAGS should solve the problem.






    share|improve this answer



























      up vote
      1
      down vote













      The boost 1.61 (and higher) are compiled with newer compilers, which use the _GLIBCXX_USE_CXX11_ABI=1 .. heh ABI. Meaning that for -std=c++11 std::basic_string... becomes std::__cxx11::basic_string... (and likewise for std::list; see the gcc Dual ABI documentation.



      Since your linker error claims there is a missing symbol that contains std::string (which is short for std::basic_string<char,std::char_traits<char>,std::allocator<char>>), you are either compiling with a compiler that is too old and uses ABI 0, or you are even compiling explicitly with -D_GLIBCXX_USE_CXX11_ABI=0.



      Either way, adding -D_GLIBCXX_USE_CXX11_ABI=1 to your CXXFLAGS should solve the problem.






      share|improve this answer

























        up vote
        1
        down vote










        up vote
        1
        down vote









        The boost 1.61 (and higher) are compiled with newer compilers, which use the _GLIBCXX_USE_CXX11_ABI=1 .. heh ABI. Meaning that for -std=c++11 std::basic_string... becomes std::__cxx11::basic_string... (and likewise for std::list; see the gcc Dual ABI documentation.



        Since your linker error claims there is a missing symbol that contains std::string (which is short for std::basic_string<char,std::char_traits<char>,std::allocator<char>>), you are either compiling with a compiler that is too old and uses ABI 0, or you are even compiling explicitly with -D_GLIBCXX_USE_CXX11_ABI=0.



        Either way, adding -D_GLIBCXX_USE_CXX11_ABI=1 to your CXXFLAGS should solve the problem.






        share|improve this answer














        The boost 1.61 (and higher) are compiled with newer compilers, which use the _GLIBCXX_USE_CXX11_ABI=1 .. heh ABI. Meaning that for -std=c++11 std::basic_string... becomes std::__cxx11::basic_string... (and likewise for std::list; see the gcc Dual ABI documentation.



        Since your linker error claims there is a missing symbol that contains std::string (which is short for std::basic_string<char,std::char_traits<char>,std::allocator<char>>), you are either compiling with a compiler that is too old and uses ABI 0, or you are even compiling explicitly with -D_GLIBCXX_USE_CXX11_ABI=0.



        Either way, adding -D_GLIBCXX_USE_CXX11_ABI=1 to your CXXFLAGS should solve the problem.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 20 at 1:56

























        answered Nov 20 at 0:55









        Carlo Wood

        1,2401223




        1,2401223






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f40225571%2fregex-search-hpp56-undefined-reference-to-boostre-detail-106100perl-match%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            404 Error Contact Form 7 ajax form submitting

            How to know if a Active Directory user can login interactively

            Refactoring coordinates for Minecraft Pi buildings written in Python