2015-06-19 6 views
0

В Linux с g ++ я использую -DPROGRAMNAME_VERSION=1.6 и -DEIGEN_NO_DEBUG, чтобы правильно установить текст и увеличить скорость выполнения соответственно. Я делаю некоторое тестирование в Windows, и у меня возникают проблемы с дублированием исполняемого файла с VS 2013. Я искал вокруг SO и нашел предложения для Properties-> C/C++ -> Preprocessor-> Preprocessor Definitions. Это согласуется с документацией Microsoft, найденной здесь https://msdn.microsoft.com/en-us/library/hhzbb5c8.aspx. Проблема заключается в том, что, когда я пытаюсь сделать это сКак указать параметры препроцессора в Visual Studio

/DEIGEN_NO_DEBUG 
/DPROGRAMNAME_VERSION=1.6 

Файл журнала показывает значение по умолчанию версии 1.00 и время выполнения в два раза больше ожидаемого времени. /DEIGEN_NO_DEBUG используется для C++ Эйген, а другой используется как таковой:

#ifndef PROGRAMNAME_VERSION 
#define PROGRAMNAME_VERSION 1.00 
#endif 

Оба были протестированы и работают на Linux. Ответы на SO были приняты, что заставляет меня думать, что есть небольшая уловка, которую мне не хватает, чтобы сделать эту работу.

+2

Я предполагаю, что вы поставили '/ DPROGRAMNAME_VERSION = 1.6' в настройки вместо' PROGRAMNAME_VERSION = 1.6'. MS build будет вставлять '/ D' для вас при вызове компилятора. – Praetorian

+0

Версии 'cl' с 1990 года приняли' -', а также '/'. Но я думаю, что вопрос заключается в том, чтобы использовать IDE для установки этих вещей - что, безусловно, возможно, но я по крайней мере на 6 лет устарел, поэтому не могу точно сказать, что представляют собой текущие варианты IDE - что-то вроде «Препроцессор» Варианты ", я ожидаю. –

+0

@Praetorian ты был прав, я включил там/D. Я попробовал это с помощью/и с - и только с ведущим D. Я никогда не думал, что мне нужно полностью удалить D. Спасибо за помощь. – Matt

ответ

0

Преториан дал правильный ответ. Visual Studio не использует те же функции/D или -D, что и g ++ и т. Д. Он вставляет это для вас. Правильное использование указано в его комментарии.

Я предполагаю, что вы поставили /DPROGRAMNAME_VERSION=1.6 в настройки вместо PROGRAMNAME_VERSION = 1.6. MS build будет вставлять/D для вас при вызове компилятора. - Praetorian

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

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