右键单击
int retVal = pn_Plaus_SDB1xxx_V820(sdbBuffer);
在 PNIO_SDB_Plausib_Console.vcxproj 的 cpp 文件中并选择转到定义,Visual Studio 2017 能够在 PN_CPP_SDB1xxx_Plausib_V820.vcxproj 的 .cpp 文件中找到以下定义相同的解决方案:
UINT32 EXPORT pn_Plaus_SDB1xxx_V820(BYTE* in_sdb_Data)
{
return pn_SDB_Plausib_Controller(in_sdb_Data, 0, 0);
}
构建完整的解决方案会抛出一个
Error C3861 'pn_Plaus_SDB1xxx_V820': identifier not found
完全相同的声明。
为什么VS2017能找到定义而编译器却找不到?缺少什么?
最佳答案
编译器只知道它正在编译的特定文件,包括其 header 。
IDE 正在整个解决方案中搜索定义。
您需要#include
包含函数声明的 header 。
(您通常可以通过使用“转到声明”来找出是哪一个。)
关于c++ - Visual Studio 可以通过 "Go To Definition"找到标识符的定义,但编译器会抛出 "identifier not found"(CS3861),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52159918/