Visual c++ MSVC运行时依赖项存在问题

Visual c++ MSVC运行时依赖项存在问题,visual-c++,linker,Visual C++,Linker,我已经构建了几个使用MSVCRT.lib的DLL,它们都已成功创建,但是在Dependency Walker中有5个缺少的依赖项,其中1个是我的,不需要担心 其他4个依赖项是 MSVCP90.dll MSVCR90.dll 延迟加载GPSVC.DLL 延迟加载IESHIMS.DLL 我读到IESHIMS.DLL没什么好担心的。如果不需要GPSVC.DLL,如何将其指定给我的DLL,使其不包括在内。有链接器选项吗 注意:我使用maven脚本通过命令行进行编译。GPSVC.DLL是组策略客户端。它是

我已经构建了几个使用MSVCRT.lib的DLL,它们都已成功创建,但是在Dependency Walker中有5个缺少的依赖项,其中1个是我的,不需要担心

其他4个依赖项是 MSVCP90.dll MSVCR90.dll 延迟加载GPSVC.DLL 延迟加载IESHIMS.DLL

我读到IESHIMS.DLL没什么好担心的。如果不需要GPSVC.DLL,如何将其指定给我的DLL,使其不包括在内。有链接器选项吗


注意:我使用maven脚本通过命令行进行编译。

GPSVC.DLL是组策略客户端。它是延迟加载的,因此只有在使用时才会加载。如果未使用组策略API,则可以忽略它。

对于windows,msvc运行时通常不会存储在应用程序目录中。因此,dependency walker会将它们显示为缺失。Dependes中可能有一个选项指向它们所在的目录,但我认为这很可能不是必需的。

您不喜欢Microsoft对DLL的命名吗?短DLL名称是历史性的。我听说微软有一个政策,使所有的名字都能放在8.3文件系统中(很久以前CD就有这个限制)。只有32位版本的GPSVC.DLL,当它从64位DLL加载时会引起问题吗。我想是的,但是这个库不存在于SysWOW64目录中……您使用的是组策略API吗?否则,将永远不会加载DLL。它显示为依赖项,因为依赖项遍历器并不完美。它时常犯错误。