Je suis en train de construire une démo de la Boost :: page sérialisation:erreur Linker lorsque vous utilisez Boost :: sérialisation dans XCode
#include <fstream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
class gps_position
{
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & degrees;
ar & minutes;
ar & seconds;
}
int degrees;
int minutes;
float seconds;
public:
gps_position(){};
gps_position(int d, int m, float s) :
degrees(d), minutes(m), seconds(s)
{}
};
int main() {
std::ofstream ofs("filename");
const gps_position g(35, 59, 24.567f);
{
boost::archive::text_oarchive oa(ofs);
oa << g;
}
return 0;
}
Mais je reçois les erreurs de l'éditeur de liens suivants:
boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
(null): "boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::text_oarchive_impl(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, unsigned int)", referenced from:
(null): "boost::archive::basic_text_oprimitive<std::__1::basic_ostream<char, std::__1::char_traits<char> > >::~basic_text_oprimitive()", referenced from:
(null): Linker command failed with exit code 1 (use -v to see invocation)
J'utilise boost 1.53.0 dans Mountain Lion et XCode 4.6.2.
J'ai ajouté le chemin d'accès aux en-têtes (chemins de recherche d'en-tête) et aux bibliothèques (chemins de recherche de bibliothèque) et ajouté libboost_serialization.dylib dans Link Binary with Libraries.
En recherchant dans d'autres threads mes problèmes semblent être que je n'ai pas dit au compilateur au sujet de la bibliothèque statique libboost_serialization.a. Comment puis-je faire cela ? (Si c'est mon problème). J'ai essayé d'ajouter à l'Autre Linker Flags comme ça: -lboost_serialization sans résultat.
Quelqu'un d'autre a-t-il rencontré ce problème?
Thnaks à l'avance.
Que diriez-vous de vous lier au fichier '.a' au lieu du fichier' .dylib' (si c'est le cas)? – trojanfoe
@trojanfoe: toujours obtenir les mêmes erreurs – Kobe