gpt4 book ai didi

c++ - Boost 序列化和 MFC : "cannot open file ' libboost_serialization-vc141-mt-s-x32-1_69. lib'"

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:23 26 4
gpt4 key购买 nike

我目前正尝试在我的项目中使用 boost 进行序列化。我首先遵循这个演示并确保我可以在 Visual Studio 上得到 boost :

https://www.boost.org/doc/libs/1_69_0/libs/serialization/example/demo.cpp

完成此演示后,我将 boost 添加到我遇到了一些问题的项目中。当我将“使用标准 Windows 库”更改为“在静态库中使用 MFC”时,出现错误:

cannot open file 'libboost_serialization-vc141-mt-s-x32-1_69.lib'

更具体地说,这种情况发生在以下内容中。

#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/list.hpp>

我是 boost 的新手,所以我想知道为什么会发生这种情况以及这些对于数据存储的必要性。如果是基本问题,我将如何修复它?

最佳答案

错误消息文件名中的“x32”表示“在静态库中使用 MFC”正在尝试与 32 位 boost 库链接,文件名中的 s 表示它需要一个静态库,参见:how can I decode boost library namimg .

您的 boost 库很可能是在 64 位模式下构建的,可能不是静态的。您可以从库文件名中看出:64 位库的文件名中包含“x64”,例如:libboost_serialization-vc141-mt-x64-1_69.lib 是一个 64 位库,不是 为静态链接到 C++ 标准库和编译器运行时支持库而构建,因为它在文件名中有 -s

在这种情况下,解决方案是在 32 位模式下构建 boost 序列化库,使用 runtime-link=static,参见 boost getting stared on windows .

关于c++ - Boost 序列化和 MFC : "cannot open file ' libboost_serialization-vc141-mt-s-x32-1_69. lib'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55405204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com