Ik zit al de hele middag te kloten om de regex library van c++11 te gebruiken, maar ik krijg het maar niet werkend.
Ik heb een kleine testcase opgezet met de volgende code:
De code is obviously nog niet functioneel, echter krijg ik al met deze hoeveelheid code compile problemen. Ik gebruik c++11 (zowel -std=c++11 als -std=gnu++11 geprobeerd als compiler flag) met gcc (GCC) 4.8.2 20140206 (prerelease), maar heb ook clang geprobeerd welke ongeveer dezelfde error geeft. Ik werk in arch linux, en heb daar ook proberen te compilen.
De error:
Wat mij het geval lijkt, is dat er een library niet beschikbaar is bij het linken. Ik heb zitten googlen, maar kan dus niet vinden welk library dit zou moeten zijn. Bovendien zit het in de c++11 standaard, en zou het dus standaard gelinked moeten worden als ik c++11 enable. Ik heb ook zitten kijken op internet of gcc en clang dit wel ondersteunen, en voor zover ik kan zien doen ze dit wel.
Heeft iemand een idee wat nodig is om dit wel werkend te krijgen?
Alvast bedankt,
Rob
Ik heb een kleine testcase opgezet met de volgende code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
| #include <string> #include <regex> std::regex pattern("foobar"); int main() { std::string str = "foobar"; std::regex_iterator<std::string::iterator> regexIterator ( str.begin(), str.end(), pattern); return 0; } |
De code is obviously nog niet functioneel, echter krijg ik al met deze hoeveelheid code compile problemen. Ik gebruik c++11 (zowel -std=c++11 als -std=gnu++11 geprobeerd als compiler flag) met gcc (GCC) 4.8.2 20140206 (prerelease), maar heb ook clang geprobeerd welke ongeveer dezelfde error geeft. Ik werk in arch linux, en heb daar ook proberen te compilen.
De error:
code:
1
2
| test.cpp:(.text+0x106): undefined reference to `std::regex_iterator<__gnu_cxx::__normal_iterator<char*, std::string>, char, std::regex_traits<char> >::regex_iterator(__gnu_cxx::__normal_iterator<char*, std::string>, __gnu_cxx::__normal_iterator<char*, std::string>, std::basic_regex<char, std::regex_traits<char> > const&, std::bitset<11ul>)' collect2: error: ld returned 1 exit status |
Wat mij het geval lijkt, is dat er een library niet beschikbaar is bij het linken. Ik heb zitten googlen, maar kan dus niet vinden welk library dit zou moeten zijn. Bovendien zit het in de c++11 standaard, en zou het dus standaard gelinked moeten worden als ik c++11 enable. Ik heb ook zitten kijken op internet of gcc en clang dit wel ondersteunen, en voor zover ik kan zien doen ze dit wel.
Heeft iemand een idee wat nodig is om dit wel werkend te krijgen?
Alvast bedankt,
Rob