6
votes

Comment puis-je utiliser Boost Boost :: Regex.HPP Library en C ++?

J'ai essayé d'utiliser Boost Bibliothèque mais j'ai échoué, voir mon code:

#include "listy.h"
#include <boost/regex.hpp>
using namespace boost;

ListyCheck::ListyCheck() {

}

ListyCheck::~ListyCheck() {

}

bool ListyCheck::isValidItem(std::string &__item) {
    regex e("(\\d{4}[- ]){3}\\d{4}");

    return regex_match(__item, e);
}


0 commentaires

4 Réponses :


12
votes

Vous devez créer un lien vers libboost_regex . Ajouter -Lboost_regex au commutateur Compiler si vous utilisez GCC.


0 commentaires

4
votes

Ce sont des erreurs de liaison. La bibliothèque de Boost Regex n'est pas une bibliothèque d'en-tête uniquement comme Shared_PTR (par exemple) - vous devez créer un lien avec la bibliothèque binaire ou quelle que soit la bibliothèque binaire.


0 commentaires

1
votes

Vous devez créer un lien contre BOOST_REGEX.


0 commentaires

0
votes

eu un problème similaire.

La solution consistait à lier via Cumake avec la bibliothèque de liaison de la cible de commande: xxx

à l'aide de la syntaxe -lboost_regex comme proposé ici n'a pas fonctionné ici. (au moins pas avec cmake)

Le problème de la racine aurait pu être des versions différentes des bibliothèques, ce qui entraîne le problème et même si le compilateur et le maillant trouvent la Regex Lib.


0 commentaires