我有一个已经开发了几十年的应用程序,并向我提供了 .h 和 .a 文件。 我的程序主要是用 c/c++ 编写的,当我尝试链接到这些 .a 文件时,我得到:错误 LINK2019:未解析的外部符号引用了函数,致命错误 LINK1136:无效或损坏的文件。
在 Windows 上使用 Visual Studio 2022。
我的所有其他静态库文件都是.libs,但这是一个.a 文件。 有没有办法链接到.a静态库文件?
我的 .vcxproj 文件具有以下内容:
<Link>
<AdditionalDependancies>...;NewLibrary.a;$(AdditionalDependancies)</AdditionalDependancies>
....
</Link>
我的 .props 文件具有以下内容:
<AdditionalIncludeDirectories>...$(THIRDPARTYLIB)/NewLibraries</AdditionalIncludeDirectories>
<AdditionalLibraryDirectories>...$(THIRDPARTYLIB)/NewLibraries</AdditionalLibraryDirectories>
您的 .a 文件与 VS Code 工具兼容吗?如果是这样,您可以通过转到 lib 文件所在的目录并运行以下命令将其转换为 .lib 文件:
lib /def:NewLibrary.a /out:NewLibrary.lib
如果项目不太长或完全由您制作,您可以创建一个 .def 文件来描述该文件的导出函数,然后用它创建一个 .lib 文件。