UINT64 不是 boost 的成员
UINT64 is not a member of boost
我 运行 在 VS2012 下使用 boost 1_62_0 编译我们的一个程序时遇到了一些问题。我相信我以前曾在 VS2015 下进行过此编译(但无法验证这一点)。
我打开 /showIncludes
以了解问题到底出在哪里,并且我已将其缩小到包含 VS2012 中的 typeindex
包括:
Note: including file: C:\PROGRA~2\MICROS~3.0\VC\include\crtdefs.h^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/limits.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/limits.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/type_traits/is_enum.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/type_traits/is_integral.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/utility/enable_if.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/cstdint.hpp^M
Note: including file: C:\PROGRA~2\MICROS~3.0\VC\include\typeindex^M
\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/hash.hpp(236) : error C2039: 'UINT64' : is not a member of 'boost'^M
\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/hash.hpp(237) : error C2039: 'UINT64' : is not a member of 'boost'^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/extensions.hpp^M
使用#pragma message,我可以验证它在 cstdint.hpp
的 boost 命名空间中有 using ::uint64_t
关于如何解决这个问题有什么想法吗?
的确,这闻起来像一个 MACRO。
你应该找出哪个header定义了类似
的东西
#define uint64_t UINT64
您可以保存失败翻译单元的预处理器输出以找到它。
我 运行 在 VS2012 下使用 boost 1_62_0 编译我们的一个程序时遇到了一些问题。我相信我以前曾在 VS2015 下进行过此编译(但无法验证这一点)。
我打开 /showIncludes
以了解问题到底出在哪里,并且我已将其缩小到包含 VS2012 中的 typeindex
包括:
Note: including file: C:\PROGRA~2\MICROS~3.0\VC\include\crtdefs.h^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/limits.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/limits.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/type_traits/is_enum.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/type_traits/is_integral.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/utility/enable_if.hpp^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/cstdint.hpp^M
Note: including file: C:\PROGRA~2\MICROS~3.0\VC\include\typeindex^M
\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/hash.hpp(236) : error C2039: 'UINT64' : is not a member of 'boost'^M
\COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/hash.hpp(237) : error C2039: 'UINT64' : is not a member of 'boost'^M
Note: including file: \COMPILESERVER\BASENT\dev\lib\src\third_party\boost\boost_latest_win64_vs2012\boost/functional/hash/extensions.hpp^M
使用#pragma message,我可以验证它在 cstdint.hpp
的 boost 命名空间中有using ::uint64_t
关于如何解决这个问题有什么想法吗?
的确,这闻起来像一个 MACRO。
你应该找出哪个header定义了类似
的东西#define uint64_t UINT64
您可以保存失败翻译单元的预处理器输出以找到它。