Wpis z mikrobloga

#cpp #c++ #gcc #programowanie

Mireczki mam dziwny problem z kompilacją pewnego projektu w C++. Muszę ustawić pewne macro które w kodzie sprawdzanie jest #ifdef'em z poziomu kompilatora. Kompiluje przy użyciu MinGW na windowsie (g++).

Problem w tym, że w Code::Blocks dodaje do listy "defines" wpis
FW_GRAPHICS, podczasu budowania widzę, że parametr
-DFW_GRAPHICS jest przekazywany do g++ natomiast sam kod tak jakby zlewa tego i zachowuje się jakby dyrektywy nie było....

tzn.

mingw32-g++.exe -O3 -w -Wall -std=c++0x -std=gnu++11 -DFW_GRAPHIC -g -I..\..\src -IC:\libs_mingw32\include -c C:\client\src\client\game.cpp -o obj\Debug\src\client\game.o
Kompilacja dochodzi do etapu:

#ifdef FW_GRAPHICS
#include "graphicalapplication.h"
#else
#error Not working
#include "consoleapplication.h"
#endif

#error został dodany przezemnie i jak zapewne się domyślacie, wykonuje się i przerywa kompilacje. Dlaczego, skoro do linii poleceń jest przekazane -DFWGRAPHIC? W źródłach to macro nie jest nigdzie zmieniane dynamicznie.
  • 3
  • Odpowiedz