未定义符号:_ZTIN5boost7archive6detail14basic_oarchiveE 我遇到了这个问题,没有加载一个C++插件。 这是boost库的错误吗
这是我的密码:未定义符号:_ZTIN5boost7archive6detail14basic_oarchiveE 我遇到了这个问题,没有加载一个C++插件。 这是boost库的错误吗,c++,C++,这是我的密码: 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::te
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;
}
愤怒是对的。
我忘了链接到序列化。。。
(这愚蠢的错误怎么会发生…)
如果遇到同样的问题,
在cmakelists.txt中包含以下代码
find_package(Boost 1.47.0 REQUIRED COMPONENTS serialization system)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(${libname} ${Boost_LIBRARIES})
非常感谢!以太愤怒。对于使用SCON的任何人,添加:
env.Append(LINKFLAGS = ['-lboost_serialization', '-lboost_system'])
为我解决了这个问题。是否按照文档中的描述链接boost序列化库?发布你的链接器标志。我想我链接正确。我写了几个插件。其他的序列化代码运行良好。如果你想看到连接到boost的链接。。。set(boost_packages system filesystem program_options regex signals thread iostreams date_time)find_packages(boost 1.36.0必需组件${boost_packages})include_目录(${boost_include_DIRS})link_目录(${boost_LIBRARY_DIRS})我不知道语法来自哪个构建系统。。。但是我猜你的
boost\u包
行应该包括序列化
。
env.Append(LINKFLAGS = ['-lboost_serialization', '-lboost_system'])