gpt4 book ai didi

c++ - 使用 boost 示例时出现错误 C4996

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

我已经按照他们的说明安装了 Boost 1.58.0,他们在安装指南中提供的示例使用 VS2012 工作正常。我的属性中也包含 OpenCV3.0.0。我想查看一些图形函数的示例,所以我复制了这段代码:http://www.boost.org/doc/libs/1_58_0/libs/graph/example/astar_maze.cpp ,并在顶部包含 stdafx.h。

编译时,我得到

error C4996: 'std::_Fill_n': Function call with parameters that may be unsafe

其他人建议要么使用

#pragma warning( disable : 4996 )

这似乎没有改变任何东西,或者通过属性关闭 SDL 检查,这将错误变成警告,但给了我更多错误,主要是 LNK2005。

关于如何让代码运行的任何想法?

附加信息:关闭 SDL 检查时的错误类型是(我的项目是 BoostExample):

error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in BoostExample.obj
error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ) already defined in opencv_ts300d.lib(ts_perf.obj)
error LNK2005: ___crtSetUnhandledExceptionFilter already defined in MSVCRTD.lib(MSVCR110D.dll)

最后

fatal error LNK1169: one or more multiply defined symbols found

我猜这意味着 Boost 正在通过重新定义某些东西来与 OpenCV 和其他 DLL 进行交互。有没有可能是我安装了错误的 boost 版本?我刚刚捕获了主要的。

最佳答案

链接器错误基本上表明 boost 和 OpenCV 是使用不同的运行时设置编译的,一个用于静态库,另一个用于 DLL,不能混合使用。您需要重建您的 boost 和 OpenCV 以使用相同的运行时设置。

关于c++ - 使用 boost 示例时出现错误 C4996,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699251/

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