我遇到了这个问题,无法为c ++加载插件。 这是一个提升lib的错误吗?
这是我的代码:
template <typename T>
bool enSerialize(const T& data, const std::string& filename) {
std::ofstream ofs(filename.c_str(), std::ios::out);
if (!ofs.is_open()) {
return false;
}
else {
boost::archive::text_oarchive oa(ofs);
oa << data;
}
ofs.close();
return true;
}
我通过
打电话给我enSerialize(int(2), "test.txt");
答案 0 :(得分:0)
Etheranger是对的。 我忘了链接到序列化... (这个愚蠢的错误怎么可能发生......)
如果遇到同样的问题, 在cmakelists.txt中包含以下代码
find_package(Boost 1.47.0 REQUIRED COMPONENTS serialization system)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(${libname} ${Boost_LIBRARIES})
非常感谢! Etheranger。
答案 1 :(得分:0)
对于使用SCons的任何人,请添加:
env.Append(LINKFLAGS = ['-lboost_serialization', '-lboost_system'])
为我解决了这个问题。