0

Visual Studio 2010 Premium,本机 WIN32 MFC 项目(解决方案中没有 .net 项目)。

我们有一个包含 35 个项目的复杂解决方案。该产品有很多客户,我们通常做的是为每个客户创建一个单独的配置。除了很少的#define 和对输出目录的更改之外,配置没有任何重大变化。它工作正常,但现在产品的每次更改都需要更改多个配置,并且也容易出错。我们希望根据某些参数仅使用一个通用配置来清理多个配置,并将这些参数传递给批处理文件以构建构建。

为客户端“A”条件编译#define _BUILD_PROJECT_FOR“A”构建它的输出文件夹在“c:\builds\client\a”中,在解决方案中的 35 个项目中,我们只需要该客户端的 32 个项目

要传递什么命令和参数,以便我可以通过传递#ifdef、要构建的项目及其输出目录在命令行构建解决方案。

我正在尝试使用 msbuild,但无法将预处理器参数传递给编译器。

4

3 回答 3

0

更多帮助可以从:

http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&pageno=0&detail=1&wid=871&title=%25vc%2B%2B%25

于 2010-06-24T06:26:53.970 回答
0

这对我有用。使用 VS2010,我有几个项目在进行中,所有项目都需要 #include 来自一个公共项目的一些 .h 文件,我将它们作为共享的 .h 文件保存在那里。如果我在我正在使用的项目中使用#define ACTION 之类的东西,那么在编译时使用#ifdef ACTION 时,在任何共享项目文件中都不会识别它。为了解决这个问题,我没有在工作项目中添加#define ACTION,而是将它添加到命令行选项中。您可以在项目属性、C/C++ >> 命令行下获得此信息,在附加选项框中输入 /D "ACTION"。就编译器而言,这与 #define ACTION 相同。

附加说明,我还必须“添加”添加>>现有项目,我想从我的共享项目中使用的.h和.cpp共享文件到我的工作项目中,以满足我抱怨的链接器。我希望这有帮助。

于 2013-05-24T13:41:08.177 回答
0

对于预处理器指令,您可以查看这个先前的问题

于 2010-06-23T12:38:53.050 回答