在 VC++(VS2010) 项目输出中包含 DLL

Posted

技术标签:

【中文标题】在 VC++(VS2010) 项目输出中包含 DLL【英文标题】:Including DLL's In VC++(VS2010) Project Output 【发布时间】:2011-09-15 09:07:06 【问题描述】:

免责声明:我是一名 C# 开发人员,试图了解一些 C++ 基础知识

已经创建了一个命令行项目,其中包含链接器 > 输入 > 附加依赖项下链接的 DLL 文件的 .lib,并且还具有在 C/C++ > 常规 > 附加包含目录下指定的头文件的位置。运行构建并且所有编译都正常,.exe 构建在 Debug/Release 目录中。

问题是我还希望项目所依赖的 .dll 文件存在(就像在 .Net 项目中添加引用一样) - 但事实并非如此。启动 .exe 时,它​​抱怨找不到 DLL。很公平,但是如果 VC++ 知道它是必需的,为什么不把 DLL 放在那里呢?

除了手动复制它们之外,是否有“最佳实践”来确保依赖的 DLL 文件位于输出目录中?我有一个需要使用一些第三方库的项目,我希望 IDE 能帮助我管理它们...

非常感谢您提供的任何指导!

【问题讨论】:

【参考方案1】:

如果您创建包含 exe 和 dll 的解决方案,则所有输出文件都在 $(SolutionDir) Debug 或 Release 子目录中创建,并且 exe 可以成功运行。否则,您有以下选择之一:

    将构建后步骤中的 Dll 复制到可加载的目录(通常是 .exe 目录)

    将 Dll 目录添加到 PATH。

【讨论】:

以上是关于在 VC++(VS2010) 项目输出中包含 DLL的主要内容,如果未能解决你的问题,请参考以下文章

vs2010 相对路径中附加包含目录 不好用,请帮忙看看

请教 如何运行含多个cpp的一个c++项目里面的一个cpp

在我的构建输出中包含 Nuget 依赖项?

如何不在生成的命名空间中包含 Visual Studio 项目文件夹名称

VC6.0中怎样使用CImage类?

如何将 VC++6.0 项目升级到 VS2010?