C++ 讯息;错误:使用未声明的标识符';断言'&引用;

C++ 讯息;错误:使用未声明的标识符';断言'&引用;,c++,include,C++,Include,我有一段代码,其中包括一些Boost头文件。编译时,我收到了如下错误 /usr/local/include/boost/smart\u ptr/shared\u ptr.hpp:1041:9:错误:使用未声明的标识符“assert” BOOST_ASSERT(deleter_u.use_count()因为在我的include path(我的一个自定义文件)中有一个名为ASSERT.h的文件。在Windows和macOS使用的不区分大小写的文件系统上,这将隐藏实际定义ASSERT宏的原始ASSER

我有一段代码,其中包括一些Boost头文件。编译时,我收到了如下错误

/usr/local/include/boost/smart\u ptr/shared\u ptr.hpp:1041:9:错误:使用未声明的标识符“assert”

BOOST_ASSERT(deleter_u.use_count()因为在我的include path(我的一个自定义文件)中有一个名为
ASSERT.h
的文件。在Windows和macOS使用的不区分大小写的文件系统上,这将隐藏实际定义
ASSERT
宏的原始
ASSERT.h

因此,解决方案只是重命名我的断言头文件

(多亏了。)

您需要
#包括
来引入
断言
实现

您的工作是相应地定义或不定义
NDEBUG


我很惊讶Boost没有为您做到这一点-您是否正确使用Boost文件(即包括您应该使用的文件)?

你没有读我的帖子吗?我明确地这样做了,但没有任何帮助。即使定义了
NDEBUG
,符号也存在。它只是一个空宏,但它确实存在。顺便问一句。你也是那个对我的问题的解决方案投了否决票而没有发表评论的人吗?为什么?它实际上是问题的正确解决方案。我可以说出来,因为这是正确的这正是我为解决这个问题所做的。这篇文章是以问答的方式完成的。这项为我构建bWidgets图书馆的工作对我很有帮助,谢谢。