连接错误XCode中
问题描述:
使用boost ::序列化时
我试图建立来自Boost演示::系列化页:连接错误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)
我在Mountain Lion和XCode 4.6.2中使用boost 1.53.0。
我已经添加了标题(标题搜索路径)和库(库搜索路径)的路径,并在链接库中添加了libboost_serialization.dylib。
在其他线程中搜索我的问题似乎是我没有告诉编译器关于静态库libboost_serialization.a。我该怎么做呢 ? (如果这是我的问题)。我尝试添加到其他链接器标志,如下所示:-lboost_serialization没有结果。
其他人都遇到过这个问题吗?
Thnaks提前。
答
你有这样的警告吗?
忽略文件您_lib_file_name,文件是专为不支持的文件格式(等等等等等等),这是不被链接
它的架构,你有,尝试用正确的配置来构建升压。
+0
我相信你应该看看http://*.com/questions/7361751/c-boost-on-iphone。我遇到了和你一样的问题,这个提示帮助了我。 – 2013-06-13 14:17:50
如何对'.a'文件而不是'.dylib'文件进行链接(如果存在的话)? – *foe 2013-05-11 20:24:58
@*foe:仍然收到相同的错误 – Kobe 2013-05-11 20:28:29