链接某些Windows API时出现链接器错误

2022-04-15 00:00:00 windows linker-errors winapi c++ registry

我的系统中有一个Makefile项目。最近,我添加了一些新函数,这些函数使用了以下Windows API:

RegOpenKeyEx
RegEnumKeyEx
RegCloseKey
RegGetValue

为了拥有这些API,我还添加了windows.h头文件。 代码在我的机器上编译和链接都很好。但是,在我同事的机器上,链接失败了。我们都在64位Windows机器上工作。 在他的PC中,我收到错误:

错误LNK2001:未解析的外部符号__imp_RegOpenKeyExW

错误LNK2001:未解析的外部符号__imp_RegGetValueW

错误LNK2001:未解析的外部符号__imp_RegCloseKey

错误LNK2001:未解析的外部符号__IMP_RegEnumKeyExW

我尝试的内容: 由于正在使用的库位于C:Program Files (x86)Microsoft SDKsWindowsv7.0ALibx64

我尝试添加以下行:

LINKFLAGS+=-L"C:Program Files(X86)Microsoft SDK Windowsv7.0ALibx64"

我将库路径添加到环境变量PATH

我将库复制到输出文件夹。

没有起作用。

正如我前面所说,代码在我的PC上运行正常,但在另一台PC上失败。


解决方案

注册表函数要求您将Advapi32.lib传递给链接器。这就是你错过的一步。

相关文章