undefined reference to boost::grégorien::greg_month::as_short_string() const
Cela a été demandé à plusieurs reprises mais je ne sais pas ce que je fais mal. Je vais essayer d'obtenir la date courante soustrait par 7. Voici les Principaux:
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>
#include <boost/date_time/date_formatting.hpp>
#include <boost/date_time/gregorian/greg_month.hpp>
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);
string date = to_iso_string(cdate);
cout << date << endl;
return 0;
}
Lorsque j'essaie de compiler, je reçois l'erreur suivante.
E:/include/boost/date_time/date_formatting.hpp:44: undefined reference to `boost::gregorian::greg_month::as_short_string() const'
E:/include/boost/date_time/date_formatting.hpp:49: undefined reference to `boost::gregorian::greg_month::as_long_string() const'
Peut aider quelqu'un? J'ai pensé que j'ai inclus le nécessaire fichiers..
OriginalL'auteur FRules | 2013-07-04
Vous devez vous connecter pour publier un commentaire.
Boost date_time n'est pas un en-tête de la seule bibliothèque. Merci de la construction de la bibliothèque, puis l'ajouter. Simple dans gcc:
(Attention! Cette bibliothèque sournoisement apparaît de travailler comme un en-tête de la seule bibliothèque à l'optimisation des niveaux de
-O2
et de plus, en raison de l'in-lining; mais il ne sera pas de lien lorsque vous utilisez baisse des niveaux d'optimisation par le compilateur du inliner n'est pas aussi agressif.)Après de longues 14 jours, il a finalement fonctionné. Merci.
il semble que vous ayez besoin d'une bonne machine. Le temps de Compilation de la bibliothèque boost devrait être nettement plus court.
OriginalL'auteur
Je pense que le compilateur se plaint à propos de l'inclusion de boost, lib.
Afin d'utiliser boost::grégorien(boost::date_time), vous devez utiliser
bjam à construire le coup de pouce de la bibliothèque et de le lier à l'encontre du système de fichiers lib.
La référence de boost voir cliquez ici.
EDIT: Selon ce que vous avez obtenu ci-dessus, le problème est que la bibliothèque ne peut pas être trouvé, mingw semble ne pas savoir où il est. Ré-installation de mingw peut-être nécessaire, ou vous pouvez essayer de préciser le chemin d'accès de la bibliothèque.
Bonne chance!
OriginalL'auteur
vous devez ajouter le lien lib nommé
(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
) pour le compilateur du cheminBonne chance
OriginalL'auteur