2013-12-24 9 views
0

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

+0

Не вариант. Вам придется обойтись с/D $ (SolutionName) –

ответ

0

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

 
test dir 
    test.sln 
    solution.h 
    test dir 
     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 в соответствии с вашими требованиями.

 Смежные вопросы

  • Нет связанных вопросов^_^