В 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 были приняты, что заставляет меня думать, что есть небольшая уловка, которую мне не хватает, чтобы сделать эту работу.
Я предполагаю, что вы поставили '/ DPROGRAMNAME_VERSION = 1.6' в настройки вместо' PROGRAMNAME_VERSION = 1.6'. MS build будет вставлять '/ D' для вас при вызове компилятора. – Praetorian
Версии 'cl' с 1990 года приняли' -', а также '/'. Но я думаю, что вопрос заключается в том, чтобы использовать IDE для установки этих вещей - что, безусловно, возможно, но я по крайней мере на 6 лет устарел, поэтому не могу точно сказать, что представляют собой текущие варианты IDE - что-то вроде «Препроцессор» Варианты ", я ожидаю. –
@Praetorian ты был прав, я включил там/D. Я попробовал это с помощью/и с - и только с ведущим D. Я никогда не думал, что мне нужно полностью удалить D. Спасибо за помощь. – Matt