我有一个c ++库,它可以在Windows运行时环境中使用它。
我想将它用作静态库。我以这种方式配置并成功构建它。我还能够将它的项目引用添加到我的用法中。
但是当我尝试构建我将要使用它的项目时 - 我遇到了构建错误:
pch.cpp : fatal error C1192: #using failed on 'D:..\mylib\mylib.winmd'
为什么要查找.winmd文件?它生成.lib文件。我在这做错了什么?
答案 0 :(得分:0)
我必须在我的.cxproj文件中添加以下项目,以便创建静态库,将其作为.lib文件添加到我的UWP中
<Keyword>StaticLibrary</Keyword>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10586.0
</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
答案 1 :(得分:-2)
#using
不是使用静态库的正确方法。
包括您需要的标题
将.lib文件添加到链接器选项。或者(从我的观点来看更好)在源代码中添加#pragma comment(lib,...)
。 lib文件应位于链接器搜索的路径中。您可以在链接器设置中调整链接器的路径。
如果您正在引用以.DLL形式创建的.NET C ++ / CLR组件#using是正确的方法。