构建 ATL 项目

Posted

技术标签:

【中文标题】构建 ATL 项目【英文标题】:Building ATL projects 【发布时间】:2012-05-23 04:08:33 【问题描述】:

我正在尝试在构建服务器上构建基于 ATL 的项目。为此,我安装了最新的 Windows SDK,但出现错误:

“无法打开包含文件:'atlbase.h':没有这样的文件或目录”。

我已经检查过了,令我惊讶的是 SDK 不再包含 ATL。我既不能在这个阶段重构 ATL,也不能在构建服务器上安装 VS。构建 ATL 的额外设置是什么?

【问题讨论】:

你不能在构建服务器上安装VS?这似乎非常不合逻辑。 VS的付费版本应该包含ATL。 在构建服务器上安装 IDE 真是个糟糕的主意。我觉得这很合乎逻辑。但是有windows背景的人可能会有不同的看法。 我不知道您甚至可以在没有 IDE 的情况下安装编译器。对我来说,在服务器和开发人员工作站之间拥有一致的构建环境至关重要,即使您从不使用 IDE。 你可以。我们的纯 .NET 构建环境只安装了 .NET 4(msbuild 是运行时的一部分)。对于 C++ 构建服务器,我们只使用 SDK,因为它有助于更​​好地理解最终用户的依赖关系。 我不敢相信有人在构建服务器上添加了 VS。 【参考方案1】:

ATL / MFC 由 VS 安装,因此,如果您无法安装 VS,也许您可​​以将其安装在某个地方,然后获取头文件、库和 DLL,然后在您的构建服务器上手动安装它们。有点乱,但应该可以。

【讨论】:

作为一个自定义 NuGet 包我可能可以这样做一次【参考方案2】:

我最近遇到了同样的问题。如果您使用的是 Microsoft Visual Studio 的 Express 版本,则不能使用 ATL。我知道这听起来不合逻辑,但我想没有办法做到这一点。一些 MSDN 人员告诉我,在 Microsoft Visual Studio Express Editions 的许可证文件中,有一行关于此的内容。 ATL 不是免费的,因此您必须购买它,或者使用 Microsoft Visual Studio 的专业版。

在 Microsoft Driver Dev Kit 中,有 ATL 类,但它们会给出奇怪的链接错误。所以,我猜你必须使用 Microsoft Visual Studio 2008 Professional 或 2010 Professional。

如果我想在设置 ATL 时遇到更多错误/问题,我可以为您提供更多帮助。

保重。

【讨论】:

以上是关于构建 ATL 项目的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 Windows SDK 7.1 编译 ATL 项目

在构建导出包含ATL :: CString成员的类的DLL时发出警告C4251

由于未解析的符号,使用向导创建的 ATL 项目无法编译

非 MFC ATL 项目 (dll) 产生 MFC 相关错误

我可以通过它来代替 ATL 的使用以获得相同或更好的性能?

修改命令行构建参数