[wxDev-C++] Nie mogę utworzyć prekompilowanego nagłówka


(Quentin) #1

Witam!

Mam problem z prekompilowanymi nagłówkami w wxDev-C++. Wg Wiki wxWidgets:

dodałem nagłówek, który ma być prekompilowany do projektu oraz w jego opcjach zaznaczyłem "Create precompiled header". W Main.cpp zaznaczyłem natomiast "Use precompiled header", ale pomimo tego nagłówek wciąż nie jest prekompilowany - muszę wstawiać zwykłe nagłówki, bo inaczej wyświetli się błąd o braku deklaracji nazw w programie...

Czy wiecie jak rozwiązać ten problem :?:

EDIT:

Znalazłem już coś powodującego błąd.

Zawsze przed wstawieniem zwykłego nagłówka daje się dyrektywę preprocesora, która sprawdza czy zdefiniowana jest nazwa WX_PRECOMP. Wygląda to tak:

#include "wx/wxprec.h" //Prekompilowany nagłówek

#ifndef WX_PRECOMP

    #include "wx/wx.h" //Zwykły nagłówek

#endif

Natomiast instrukcje powodujące albo zdefiniowanie albo niezdefiniowanie tej nazwy preprocesora są oczywiście w wxprec.h. I tam pierwszy człon rozległej dyrektywy warunkowej to:

#if defined( __VISUALC__ ) || \

defined( __DMC__ ) || \

defined( __VISAGECPP__ ) || \

defined( __MWERKS__ ) || \

defined( __WATCOMC__ ) || \

defined( __BORLANDC__ )


//... Dalsze szczegóły na razie nie potrzebne

#endif

A mój wxDev-C++ (czyli najnowszy pobrany oddzielnie MinGW) wykłada się właśnie już tutaj ! Sądząc po dwóch nazwach (Visual i Borland) wszystkie nazwy dotyczą kompilatorów czy tam środowisk. Wychodzi na to, że nie uwzględniono w nich nazwy preprocesora tworzonej przez kompilator g++ (używam MinGW). Nie wiem tylko dlaczego...

EDIT 2:

Wszystko już w porządku, mam prekompilowany nagłówek: podczas pierwszego buildu wyświetla się napis "Precompiling..." :slight_smile: Trwa to 7 sekund (tyle co kompilacja normalnych nagłówków), ale za drugim razem jest to już sekunda :wink:

Rzeczywiście było tak jak mówiłem - dyrektywa warunkowa nie uwzględniała kompilatora MinGW - musiałem sam dodawać nazwę preprocesora __MINGW32__.

Ale - to nie to jest najdziwniejsze. Musiałem skopiować dodatkowo zawartość oryginalnego pliku wxprec.h (bo wcześniej po prostu go dodawałem do projektu z oryginalnej ścieżki) i utworzyć taki sam plik w moim projekcie - bo jak dodawałem oryginalny to nie działało...