当我添加某些 .cpp 文件时出现很多错误
so many error when i add certain .cpp file
我制作了一些功能的小程序,我测试了它,它如我所愿地工作。
然后我将其 .h 和 .cpp 文件添加到另一个程序中以使用它,但是当我添加 .cpp 文件时,它给了我 100 个与我在添加的 .cpp 文件中使用的 boostmultiindex 相关的错误。
我不知道发生了什么。
错误包括以下内容"this is sample of errors":
Error C2516 'boost::mpl::if_<C,F1,F2>::type': is not a legal base class
Error C2039 'type': is not a member of 'boost::iterators::iterator_category_to_traversal<int>'
Error C3203 'type': unspecialized class template can't be used as a template argument for template parameter 'U', expected a real type
Error C2653 'safe_mode': is not a class or namespace name
Error C2143 syntax error: missing ',' before '<'
我没有附上代码或文件,因为我不知道从哪里开始。
我可以根据任何指导更新 post。
更新:
我认为问题与我放入其中的某些头文件有关,其中大部分包含我所有的 cpp 文件。
这可能会导致循环依赖问题,从而导致忽略某些包含。
因为当我排除这个大的包含文件时,错误会大大减少。
我会尝试重新排序包含的内容,看看它们是否有所不同。
更新:
现在我在大包含文件中注释了两行,它删除了与此问题相关的错误。
这两行是:
//??#include "modules/utils/utils.h"
//??#include "modules/utils_dst/utils_dst.h"
我不明白为什么这两行会出现这些错误
是不是和两个文件在子目录下有关???
确保以下几点:
当包含 .h
和 .cpp
文件时,您拥有完整路径,而不仅仅是文件名。
在您包含的文件和您要包含的项目文件中没有变量、函数等具有相同的 name/signature。如果有,则使用namespace
区分冲突。
您已将要包含的文件的所有依赖项添加到要包含的文件中。
我制作了一些功能的小程序,我测试了它,它如我所愿地工作。
然后我将其 .h 和 .cpp 文件添加到另一个程序中以使用它,但是当我添加 .cpp 文件时,它给了我 100 个与我在添加的 .cpp 文件中使用的 boostmultiindex 相关的错误。
我不知道发生了什么。
错误包括以下内容"this is sample of errors":
Error C2516 'boost::mpl::if_<C,F1,F2>::type': is not a legal base class
Error C2039 'type': is not a member of 'boost::iterators::iterator_category_to_traversal<int>'
Error C3203 'type': unspecialized class template can't be used as a template argument for template parameter 'U', expected a real type
Error C2653 'safe_mode': is not a class or namespace name
Error C2143 syntax error: missing ',' before '<'
我没有附上代码或文件,因为我不知道从哪里开始。
我可以根据任何指导更新 post。
更新:
我认为问题与我放入其中的某些头文件有关,其中大部分包含我所有的 cpp 文件。
这可能会导致循环依赖问题,从而导致忽略某些包含。
因为当我排除这个大的包含文件时,错误会大大减少。
我会尝试重新排序包含的内容,看看它们是否有所不同。
更新:
现在我在大包含文件中注释了两行,它删除了与此问题相关的错误。
这两行是:
//??#include "modules/utils/utils.h"
//??#include "modules/utils_dst/utils_dst.h"
我不明白为什么这两行会出现这些错误
是不是和两个文件在子目录下有关???
确保以下几点:
当包含
.h
和.cpp
文件时,您拥有完整路径,而不仅仅是文件名。在您包含的文件和您要包含的项目文件中没有变量、函数等具有相同的 name/signature。如果有,则使用
namespace
区分冲突。您已将要包含的文件的所有依赖项添加到要包含的文件中。