Visual Studio 吐出 .lib 而不是 .dll

Posted

技术标签:

【中文标题】Visual Studio 吐出 .lib 而不是 .dll【英文标题】:Visual studio spitting out a .lib instead of a .dll 【发布时间】:2015-05-06 16:13:53 【问题描述】:

我告诉 Visual Studio 构建一个 .dll,但无论我做什么,它都只构建一个 .lib。 我将配置类型设置为 .dll,扩展名设置为 .dll,在预处理器指令中我有“_WINDLL”,并且我将输出文件设置为“$(CommonProgramW6432)\VST3\Steinberg\ $(项目名称).dll" 。但是,它仍然每次都构建一个静态(.lib),我不知道为什么。我正在尝试从一个名为 Vst3 的 sdk 编译一个名为“AGain”的示例程序,如果你不介意为了帮助我而经历一场残酷的地狱般的噩梦,你可以到这里尝试编译它。

这是我构建 .lib 文件后它给我的警告

  Warning   1   warning MSB8012: 
  TargetPath(C:\VST3 SDK\public.sdk\samples\vst\again\win\Win32\Debug\AGain.dll) 
  does not match the Linker's OutputFile property value 
  (C:\Program Files (x86)\Common Files\VST3\Steinberg\AGain). 
  This may cause your project to build incorrectly. 
  To correct this,   
  please make sure that $(OutDir),
   $(TargetName) and $(TargetExt) 
  property values match the value specified in %(Link.OutputFile).  
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets 1137

这个问题直接出现,根本没有对源代码或项目进行任何更改。

【问题讨论】:

【参考方案1】:

转到项目属性(alt+enter),然后在“配置属性”下找到“常规”选项卡。将“目标扩展”更改为“.dll”。现在,在“链接器”选项卡下,将“输出文件”字段留空。

【讨论】:

成功了!太感谢了!我想告诉你我怎样才能与你取得联系? 我很困惑。我在任何地方都没有看到链接器选项卡?我正在构建相同的 VST 示例,并将目标更改为 dll,但它仍然构建了一个 .lib

以上是关于Visual Studio 吐出 .lib 而不是 .dll的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Visual Studio 2017 在 ASPNET Core 中排除 wwwroot\lib

Visual Studio XSD 工具:生成集合而不是数组

visual studio2017 添加dll库

Visual Studio 2017 错误加载规则集文件

为啥使用 Visual Studio 而不是 GCC 编译时没有错误?

为啥 cygwin 使用 Visual Studio BuildTools 而不是 gcc?