Chciałbym zapisać numer wersji mojej biblioteki w jednym miejscu. Więc mam zdefiniowane taką zmienną w CMake akt:Jak odczytać zmienną CMake w kodzie źródłowym C++
SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")
Z tej definicji można wygenerować plik version.rc według definicji Microsoftu, który skompilować do biblioteki, a potem pokazuje się poprawnie we właściwościach okno mojego pliku dll.
Teraz chciałbym użyć tej zmiennej CMake również w moim kodzie źródłowym C++, ale tak naprawdę nie dostaję działającego rozwiązania. Próbowałem różnych rzeczy tak:
#ifndef VERSION_LIBINTERFACE
# define VERSION_LIBINTERFACE @[email protected]
#endif
lub to:
unsigned int getLibInterfaceVersion()
{
return @[email protected];
}
Ale kompilator nie zaakceptuje niczego. Ponieważ moje badania w CMake-Documentation nie przyniosły żadnych rezultatów, mam nadzieję, że ktoś mógłby udzielić mi niezbędnych porad.
Z góry dziękuję.
Musisz przekazać tę wartość zmiennej do kompilatora jako stałą prekompilatora. Dokładna składnia zależy od używanego kompilatora. –
Używam kompilatora Visual Studio 2010. Mogę więc używać go jak stałych wymienionych w http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx? Czy możesz podać mi przykład? – Snowfox