编译错误之error C3861: “xxxx”: 找不到标识符

今天碰到了找不到标识符的错误!把几个问题总结一下。


我的编译错误是如下:



这个时候,我们一般往这几种情况去考虑。


第一种情况

我们看看是否包含sbc2dbc的文件是否包含进来。我们一查果然,包含sbc2dbc函数的sbcdbc.hpp文件并没有加进来!


于是我们想办法找到sbcdbc.hpp,并把它include进来。

在开头写上 include "sbcdbc.hpp"  (假设sbcdbc.hpp与当前文件在一个目录下,这不是重点)


我们兴高采烈的再次编译。

如果已经解决了的话,那么恭喜你,哈哈,如果还没有解决,看下面。

还是出现相同的错误。此时,我们想,不应该呀,我们已经包含进相应文件了。为什么编译器还是不认识这个函数。


第二种情况

我们去查命名空间。是否包含sbc2dbc的源文件中的命名空间,我没有using进来,导致编译器不认识。

于是我查看了sbcdbc.hpp文件。

发现了该文件中,有如下定义:

namespace ltp {
namespace strutils {
namespace chartypes {


于是我找到问题所在了,就是命名空间的问题。在该文件中,加入:

using strutils::chartypes::sbc2dbc;即可

于是就解决了sbc2dbc函数找不到标识符的问题了。


第三种情况

如果上面俩种情况都解决了,还出现这种问题,可以看看是不是string这些库没有加入。因为有些IDE编译器能够给你帮你自动找到string库,但是有些IDE不会,那么有可能是这些STL库没有引入进行。


大概是上面三种情况能够导致这些问题发生。



你可能感兴趣的:(计算机技术)