我有 2 个 VS 解决方案。两者都包含同一个项目 X。当我编译时,我希望这两种解决方案都以不同的方式触发 #ifdef MYFLAG。因此,假设我希望解决方案 A 定义 MYFLAG 而解决方案 B 不定义它。如果我在 /D MYFLAG 之类的项目级别执行此操作,那么两种解决方案都将包含此标志,我只希望其中一个这样做。
问问题
105 次
1 回答
0
考虑以下目录结构:
测试目录 测试.sln 解决方案.h 测试目录 测试.vcxproj 测试1目录 测试1.sln 解决方案.h
两者test.sln
和test1.sln
参考test.vcxproj
。
文件test\solution.h
:
#pragma once
#define SOLUTION_NAME "test"
文件test1\solution.h
:
#pragma once
#define SOLUTION_NAME "test1"
在项目属性中,附加包含目录,添加:$(SolutionDir)
. 最后,项目代码:
#include "stdafx.h"
#include <iostream>
#include "solution.h"
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << SOLUTION_NAME << std::endl;
return 0;
}
构建并运行 test.sln,它会打印:test
. 构建并运行 test1.sln,它会打印:test1
. solution.h
根据您的要求将依赖于解决方案的定义归档。
于 2013-12-24T14:02:31.017 回答