我在Visual Studio中创建了一个静态库(指定为a(,其中包括来自另一个库(指定B(的一些头文件。因为这是一个静态库,我不需要担心来自a的.lib文件。当我创建一个控制台应用程序(指定为C(并添加来自B的.lib和头文件以及来自a的头文件和.lib文件时,当我试图编译C时,它会出现未解析的外部文件,与a无关,而是与B有关。
我又创建了两个测试项目,一个静态库和一个控制台应用程序。静态库仍然使用A,控制台应用程序仍然使用A和新的静态库,即使没有A的头文件,它也能很好地编译。
我已经试过了所有的差异,我看不出任何会阻止C编译的地方。唯一的区别是项目存储在文件夹中。我已经双重验证了头文件和.lib文件的位置,它们都在那里。如何修复LNK2001错误?
编辑:我意识到我的帖子没有多大意义,但当我试图在另一个项目中使用我的库时,它根本不会链接,我看不出原因。
要链接到.lib文件,只需要:
1、将头文件的路径添加到Additional Include Directories(属性->c/c++->常规->
2、将.lib文件的路径添加到Additional Library Directories(属性->链接器->常规->
3、将.lib文件的名称及其扩展名添加到Additional Dependencies(属性->链接器->输入->Additional Dependencies(
如果这个问题无法解决,我建议您可以参考文档:Linker Tools Error LNK2001