regex_search.hpp:56: undefined reference to `boost::re_detail_106100::perl_matcher
up vote
1
down vote
favorite
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:
- My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62
- 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
add a comment |
up vote
1
down vote
favorite
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:
- My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62
- 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
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 withsudo 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
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
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:
- My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62
- 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
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:
- My system has an old boost_regex lib somewhere an cmake uses it to link despite the fact that cmake announces using 1.62
- 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
c++ regex boost
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 withsudo 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
add a comment |
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 withsudo 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
add a comment |
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.
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
edited Nov 20 at 1:56
answered Nov 20 at 0:55
Carlo Wood
1,2401223
1,2401223
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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