référence non définie à boost :: gregorian :: greg_month :: as_short_ssortingng () const

Cela a été demandé à plusieurs resockets, mais je ne sais pas ce que je fais mal. J’essaie d’obtenir la date actuelle soustraite de 7. Voici le texte principal:

#include  #include  #include  #include  using namespace std; using namespace boost::gregorian; int main(int argc, char **argv) { time_t rawtime; struct tm *timeinfo; time (&rawtime); timeinfo = localtime (&rawtime); date cdate(timeinfo->tm_year+1900, timeinfo->tm_mon+1, timeinfo->tm_mday); cdate += date_duration(-7); ssortingng date = to_iso_ssortingng(cdate); cout << date << endl; return 0; } 

Lorsque j’essaie de le comstackr, j’obtiens l’erreur suivante.

 E:/include/boost/date_time/date_formatting.hpp:44: undefined reference to `boost::gregorian::greg_month::as_short_ssortingng() const' E:/include/boost/date_time/date_formatting.hpp:49: undefined reference to `boost::gregorian::greg_month::as_long_ssortingng() const' 

Quelqu’un peut-il aider? Je pensais avoir inclus les fichiers nécessaires.

Boost date_time n’est pas une bibliothèque d’en-tête uniquement. S’il vous plaît construire la bibliothèque, puis l’append. Simple en gcc:

 gcc myapp.cpp -omyapp -lboost_date_time 

(Attention! Cette bibliothèque semble sournoisement fonctionner comme une bibliothèque d’en-tête uniquement aux niveaux d’optimisation -O2 et plus, en raison de l’inligne; mais elle ne pourra pas se lier si vous utilisez des niveaux d’optimisation plus bas où l’inliner du compilateur n’est pas aussi agressif. )

Je pense que le compilateur se plaint de l’inclusion de boost lib.

Pour utiliser boost :: gregorian (boost :: date_time), vous devez utiliser bjam pour créer la bibliothèque boost, puis la lier à la bibliothèque FileSystem.

La référence de boost voir cliquez ici .

EDIT: Selon ce que vous avez dit ci-dessus, le problème est que la bibliothèque est introuvable, mingw semble ne pas savoir où elle se trouve. Une réinstallation de mingw peut être nécessaire ou vous pouvez essayer de spécifier le chemin spécifique de la bibliothèque.

Bonne chance!

vous devriez append le lien lib nommé

 libboost_date_time-mgw46-d-1_54.dll.a 

(mon chemin D:\My Documents\Downloads\boost_1_54_0\bin.v2\libs\date_time\build\gcc-mingw-4.6.2\debug\libboost_date_time-mgw46-d-1_54.dll.a ) vers le chemin du compilateur
Bonne chance