未定义的符号:_ZTIN5boost7archive6detail14basic_oarchiveE

Undefined symbol: _ZTIN5boost7archive6detail14basic_oarchiveE

本文关键字:ZTIN5boost7archive6detail14basic oarchiveE 符号 未定义      更新时间:2023-10-16

我遇到了这个问题,无法加载 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::text_oarchive oa(ofs);
        oa << data;
    }
    ofs.close();
    return true;
}

我称这个为:

enSerialize(int(2), "test.txt");

Etheranger是对的。我忘了链接到序列化...(这个愚蠢的错误怎么会发生...

如果您遇到同样的问题,在 cmakelist 中包含以下代码.txt

find_package(Boost 1.47.0 REQUIRED COMPONENTS serialization system)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(${libname} ${Boost_LIBRARIES})

多谢!以太人。

对于任何使用 SCons 的人,添加:

env.Append(LINKFLAGS = ['-lboost_serialization', '-lboost_system'])

为我解决了这个问题。

相关文章:
  • 没有找到相关文章