Çok sayıda makalede Stack Overflow ile ilgili soruları yanıtladım: "Preprocessor tanımlarını MSBuild komut satırından derleyiciye nasıl geçirebilirim?" Ben ile gelebilir her varyasyonu denedimMSBuild.exe ya da/p kabul etmiyor: DefineConstants ne/p: PreprocessorDefinitions
MSBuild.exe /p:DefineConstants=THING_TO_BE_DEFINED
:
MSBuild.exe "/p:DefineConstants=THING_TO_BE_DEFINED"
MSBuild.exe /p:DefineConstants="THING_TO_BE_DEFINED"
MSBuild.exe "/p:DefineConstants=THING_TO_BE_DEFINED=1"
MSBuild.exe /p:DefineConstants="THING_TO_BE_DEFINED=1"
... ve diğerleri onlarca" ve hepsi bazı varyasyon karşılık verdi. Aynı zamanda PreprocessorDefinitions'ı benzer şekillerde geçersiz kıldım. Ben burada sahip büyük bir oyun projesi ile, hem de yukarıda basit bir komut satırı uygulaması ile bu çalışıyorum
#include "stdafx.h"
#if !defined(THING_TO_BE_DEFINED)
#error "THING_TO_BE_DEFINED is not defined"
#endif
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
: Hepsi aşağıda #Error tetikledi. Visual Studio'nun (bunu 2005 ve 2008 ile görüyorum) yalnızca komut satırında argümanımın uygulanmasını engelleyen bazı varsayılan değerleri bağırsaklarında olduğunu tahmin edebilirim, ancak bu hipotezi destekleyen hiçbir kanıt bulamadım.
Bunu nasıl çalıştırabilirim konusunda herhangi bir fikir var mı? Neden FSM adına iyi ol '-D THING_TO_BE_DEFINED?
geliştiricinin bana verdiği .vcproj ile sıkışmış. Hamuru. – Sniggerfardimungus