error LNK: unresolved external symbol:链接器找不到所需要的东西
此时ctrl+F7进行编译,没有报错,在这个程序中调用的是Log函数,我们实际上并没有这个函数,我们有的函数是Logr函数,在编译过程中编译器认为我们是存在这个名为Log的函数,编译时是不会去确认是否存在这个函数的,编译器时信任我们的
但在build构建整个项目时,我们需要进行链接找到此函数,然而在此程序中并没有Log函数的存在,只有Logr函数的存在,因此会报错error LNK: unresolved external symbol找不到链接所需的东西
但是如果我们不对函数进行调用的话,会出现什么情况
如果我们在Multiply函数中注释掉Log函数,在生成项目时就不会报错因为我们在从来没有调用过Log函数,所以不需要去链接
但是如果我们在函数中调用了这个函数,却不去使用他会发生什么情况
还是会出现报错,因为虽然我们现在没有使用,但是有可能会在其他的文件中调用这个函数,所以链接器还是需要链接它。但是如果我们声明只在这个文件中使用,那么我们就可以避免报错
使用static静态声明,可以声明这个函数只在本文件中使用;如果本文件不使用,则可以不进行链接。
此外,如果调用函数的类型、参数等和已有函数的类型、参数不同也会出现error LNK: unresolved external symbol。