链接器工具警告 LNK4286
“filename_1.obj”中定义的符号“symbol”由“filename_2.obj”导入
为符号指定了 __declspec(dllimport),即使该符号是在同一映像中的对象文件 filename_1.obj 中定义的。 删除 __declspec(dllimport)
修饰符以解决此警告。
备注
警告 LNK4286 是更通用的链接器工具警告 LNK4217 版本。 如果链接器可以判断哪个对象文件(而不是哪个函数)引用了该符号,它将生成警告 LNK4286。
要解决 LNK4286,请从 filename_2.obj 中引用的符号的前向声明中删除 __declspec(dllimport)
声明修饰符。
尽管最终生成的代码行为正确,但为调用导入函数而生成的代码比直接调用该函数的效率更低。 使用 /clr 选项进行编译时,不会出现此警告。
有关导入和导出数据声明的详细信息,请参阅 dllexport、dllimport。