Флаги уровня решения Visual Studio 2013

У меня есть 2 решения VS. Оба включают в себя один и тот же проект X. Когда я компилирую, я хочу, чтобы оба решения вызывали MYFLAG #ifdef по-разному. Допустим, я хочу, чтобы решение A определило MYFLAG, а решение B не определило его. Если я сделаю это на уровне проекта, как / D MYFLAG, тогда оба решения будут включать этот флаг, я хочу, чтобы только одно из них сделало это.

0

Решение

Рассмотрим следующую структуру каталогов:

тестовый каталог
test.sln
solution.h
тестовый каталог
test.vcxproj
test1 dir
test1.sln
solution.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 файл в соответствии с вашими требованиями.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]