2013-05-11 2 views
0

Я пытаюсь построить демо из бустерного :: Сериализация страница:Linker ошибка при использовании Повысьте :: Сериализация в 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; 
} 

Но я получаю следующие ошибки компоновщика:

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) 

Я использую boost 1.53.0 в Mountain Lion и XCode 4.6.2.
Я добавил путь к заголовкам (пути поиска заголовков) и к библиотекам (пути поиска библиотек), а также добавил libboost_serialization.dylib в Link Binary с библиотеками.

Поиск в других темах мои проблемы, похоже, что я не сказал компилятору о статической библиотеке libboost_serialization.a. Как мне это сделать ? (Если это моя проблема). Я попытался добавить к другим флагам Linker как: -lboost_serialization без результата.

У кого-нибудь еще была эта проблема?

Thnaks заранее.

+0

Как насчет ссылки на файл '.a' вместо файла' .dylib' (если это так)? – trojanfoe

+0

@trojanfoe: все еще получаются те же ошибки – Kobe

ответ

0

У вас есть некоторые предупреждения, подобные этому?

игнорируя файл ваш _lib_file_name, файл был создан для неподдерживаемый формат файла (бла-бла-бла), который не является архитектура быть связана

Это у вас есть, попробуйте построить импульс с надлежащей конфигурации ,

+0

Я считаю, что вы должны заглянуть в http://stackoverflow.com/questions/7361751/c-boost-on-iphone. У меня была такая же проблема, как и у вас, и этот совет помог мне. –