Visual Studio 2010 C++ DLL项目-没有输出DLL文件!

19

我可以编译DLL项目而不出现任何错误。它显示“生成成功”。但我在Debug或Release文件夹中没有看到任何DLL文件。

只有.exp,.lib和.pdb文件。


你能描述一下项目的文件夹设置,并提供来自VS的任何构建输出吗? - deworde
1
听起来,如果你说没有输出DLL,显然链接步骤没有工作。为了确认并避免我们所有人猜测,请发布编译输出的日志。我怀疑链接阶段没有发生,因为没有生成DLL。我们在这里一无所知。你能发布更多线索吗?输出是什么,编译器输出是什么。 - t0mm13b
你最终解决了这个问题吗?我也在经历同样的事情。 - redec
3个回答

40

Visual Studio 2010默认将输出文件放置在 $(SolutionDir)\Debug$(SolutionDir)\Release 中。你很可能正在查看项目内的 Debug 和 Release 文件夹,这些是中间文件。

要找出输出文件的位置,打开项目属性 > 常规 > 输出目录。默认情况下,它是 $(SolutionDir)$(Configuration)\,它会在你的解决方案目录中求值为 Debug 或 Release。

编辑 Visual Studio会在“输出”窗口告诉你它放置输出文件的位置。只需通过“视图 > 输出”打开它。它会显示类似以下内容:

1> MFCInterop.vcxproj -> C:\temp\sotest\Debug\MFCInterop.dll
========== 重新生成全部: 成功 1 个,失败 0 个,跳过 0 个 ==========


不好意思.. 我已经到处找过了。整个项目文件夹(包括其子文件夹)中都没有单一的DLL。 - prolog
也许这听起来很明显,但你尝试重新构建它而不是选择一般的“构建”选项了吗? - rkellerm
4
@prolog,不要查看“project”文件夹,查看“solution”文件夹。 - Hans Passant
2
解决方案目录通常位于项目目录的上一级。您能否打开输出窗口并查看构建日志?它会告诉您dll文件的位置。 - Igor Zevaka

0
在底部显示输出: 更改为构建 查看标识的文件夹。

0

我在使用C#和VB时遇到了问题,即VS无法创建输出文件。

根本问题似乎是它在引用方面失去了理智。

我通过以下方式进行故障排除

  1. 排除所有文件
  2. 添加一个存根类1文件/编译/验证文件是否已创建
  3. 逐个添加文件,最终您可以确定问题所在

    对我来说,问题是.Net版本不匹配。 引用的版本比项目失败的版本高

为什么VS在这种情况下没有产生编译错误还没有答案。

如果我完全删除引用,它肯定会抱怨。

格雷格


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接