我正在尝试对Code :: Blocks使用boost来序列化c ++中的对象。
我首先使用gcc 4.4.3构建了Boost,并遵循了link
中提供的说明我还遵循了BoostWindowsQuickRef中提供的步骤,为编译器和链接器添加了全局变量和搜索目录选项,最后从链接器设置中的CodeBlocksProjects \ boost_1_69_0 \ stage \ lib添加了库。 / p>
我的第一个尝试是使用Lambda示例,并且编译成功:
#include <boost/lambda/lambda.hpp>
#include <vector>
#include <algorithm>
#include <iostream>
int main()
{
std::vector<int> v{1, 3, 2};
std::for_each(v.begin(), v.end(),
std::cout << boost::lambda::_1 << "\n");
}
然后,当我尝试使用一个简单的序列化样本时,我不断收到“未定义引用”错误。
代码如下(摘自here)
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <iostream>
#include <fstream>
using namespace boost::archive;
void save()
{
std::ofstream file{"archive.txt"};
text_oarchive oa{file};
int i = 1;
oa << i;
}
void load()
{
std::ifstream file{"archive.txt"};
text_iarchive ia{file};
int i = 0;
ia >> i;
std::cout << i << '\n';
}
int main()
{
save();
load();
}
,错误如下:
.. \ boost_1_69_0 \ boost \ archive \ text_oarchive.hpp | 104 |未定义 参考 `boost :: archive :: text_oarchive_impl :: text_oarchive_impl(std :: ostream&, unsigned int)
.. \ boost_1_69_0 \ boost \ archive \ text_iarchive.hpp | 117 |未定义 参考 `boost :: archive :: text_iarchive_impl :: text_iarchive_impl(std :: istream&, unsigned int)
我尝试将boost / archive添加到链接器搜索目录中,因为所有其他解决方案都表明这是链接问题。我还尝试了不同的示例代码,但是它们都给出了相同的错误。
有人在我使用Code :: Blocks构建和运行代码时只建议使用命令行来构建启动库吗?