Autor Wątek: Jak odczytać Preprocessed C/C++ file?  (Przeczytany 1689 razy)

Offline Ivian

  • Użytkownik
    • Ivian's Cave

# Sierpień 20, 2011, 21:18:03
Potrzebuję odczytać jeden z plików CEGUI, który ściągnąłem z mercuriala, ale CMake nie chce go "odkodować". Można to zrobić za pomocą Visuala?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Sierpień 23, 2011, 18:37:12
Jeśli masz to jako projekt Visual C++, który i tak kompilujesz, to w opcjach projektu możesz włączyć dodatkowe generowanie pliku z preprocessowanym kodem C++:
Opcje projektu / C/C++ / Preprocessor / Generate Preprocessed File

Z wiersza poleceń możesz też uruchomić kompilator Visuala z parametrem /P i wtedy wykona się sam preprocessing, bez kompilacji:
http://msdn.microsoft.com/en-us/library/8z9z0bx6%28v=VS.100%29.aspx

Ale uważaj, plik będzie bardzo bardzo długi, bo wykonają się też wszystkie #include.

Offline Ivian

  • Użytkownik
    • Ivian's Cave

# Sierpień 23, 2011, 19:34:08
Jak go wykonać, to jest najmniejszy problem. Ale jak go odczytać? Jak robi to np. CMake?

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Sierpień 24, 2011, 09:24:39
Co to znaczy odczytać? Co takiego można zrobić z takim kodem, jeśli nie skompilować go albo otworzyć w edytorze i zacząć czytać? Co takiego szczególnego robi z nim CMake?

Offline Ivian

  • Użytkownik
    • Ivian's Cave

# Sierpień 24, 2011, 11:12:40
Kompilowałem ostatnio CEGUI z mercuriala. Jako że nie chciałem kompilować całości (do czego i tak doszło później - trwało jakieś 2h). Skompilowałem tylko jądro biblioteki. Niestety zabrakło pliku config.h, który tkwił w systemie jako config.h.i którego Visual ni z tej ni z owej przyczyny nie chciał chwycić, co skutkowało linijką #undef HAVE_CONFIG_H i nie mogłem obsługiwać czcionek TTF przez CEGUI. Po ściągnięciu wszystkich "dependencies" Visual z projektu CMake'a "wypluł" ten plik. Czyli jest jakaś droga do rozszyfrowania go?

Offline sir_xeno

  • Użytkownik

# Sierpień 24, 2011, 19:01:26
Hint: Zajrzyj do "\projects\premake\".