Próbuję "uzbroić" skompilować plik C, zawiera on wiele plików nagłówkowych rekursywnie..i próbuję znaleźć listę tych plików nagłówkowych ..jest tam łatwiejszy sposób znaleźć listę wszystkich plików nagłówkowych, które zawiera?lista wszystkich plików nagłówkowych zawartych w pliku C
Odpowiedz
Można użyć GCC preprocesora C z jego rozwiązaniem, aby zrzucić listę nagłówków rekurencyjnie obejmowały:
cpp -M
który pokaże Ci wszystkie nagłówki włączone.
Prawdopodobnie będziesz potrzebować dać mu korzenie wszystkich katalogów include używanych w regularnej kompilacji. Uruchom go iteracyjnie, dodając więcej ścieżek dołączania, dopóki błędy się nie zatrzymają.
Pełna forma tego polecenia w tym użytkowania jest:
cpp -M [-I include_directory *] path_to_c_file.c
Dotyczy to znowu tego, którego toolchain? –
Dotyczy to gcc – piokuc
Ah, thx! Byłem zaznajomiony z 'gcc -M' lub' g ++ -M' z poleceniem 'cpp' i ta konkretna opcja jest dla mnie nowa. Czy wyszukuje również rekursywnie zawarte pliki? Zapomnij o tym, mam to, że jest to samodzielny preprocesor ... –
Większość kompilatorów posiada przełącznik, aby je po prostu przetwórz pliku. Co oznacza między innymi, że rozszerzają cały kod #include
na rzeczywisty kod. Zwykle zawierają komentarz (właściwy komentarz C) na linii oryginalnego uwzględnienia. Możesz więc przeszukać wynikowy wstępnie przetworzony kod dla wszystkich takich komentarzy, aby zebrać wszystkie zawarte nagłówki.
Zazwyczaj nie jest to komentarz, ale dyrektywa '# line'. –
A także: przełącznikiem jest zwykle '-E' (lub'/E'). –
Zgodnie z http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options -H i -M opcja jest przydatna do tego celu.
Inną opcją jest użycie http://www.stack.nl/~dimitri/doxygen/ i wygenerowanie dokumentacji projektu, po czym można go sprawdzić, aby zobaczyć zależności plików :), jest to preferowane, ponieważ obsługuje wiele języków: C, C++, Objective-C, C#, PHP , Java, Python, IDL (smaki Corba i Microsoft), FORTRAN, VHDL, Tcl.
- 1. Lista wszystkich plików w folderze - pełna ścieżka do pliku
- 2. Lista wszystkich plików w jednym katalogu PHP
- 3. lista tagów zawartych przez oddział
- 4. Lista wszystkich plików w pakiecie homebrew
- 5. Potok Rails/Assets: Dynamicznie lista zasobów zawartych w manifeście
- 6. Lista wszystkich aktualnie otwartych uchwytów plików?
- 7. Lista plików w katalogu bieżącego pliku JAR
- 8. Ile plików nagłówkowych znajduje się w standardzie C++?
- 9. Lista wszystkich plików z internetowego katalogu FTP do listy C#
- 10. Lista wszystkich zmiennych globalnych w pliku Node.js
- 11. Git: Lista wszystkich plików z niezmienioną flagą
- 12. Git - lista wszystkich autorów folderu plików?
- 13. Lista wszystkich tematów z pliku CHM
- 14. C#: Lista wszystkich klas w zestawie
- 15. Pliki wsadowe: Lista wszystkich plików w katalogu o ścieżkach względnych
- 16. Lista wszystkich plików ze wszystkich folderów na jednej liście
- 17. Czy możliwe jest dynamiczne ładowanie wszystkich plików właściwości zawartych w pakiecie? tj. MyClass.class.getResource ("*. properties");
- 18. Jak uzyskać listę wszystkich plików (lub modułów) zawartych w pakiecie w pakiecie Webpack
- 19. C++ implementacja czystych funkcji wirtualnych i plików nagłówkowych
- 20. Dlaczego wykonywalny plik binarny zawiera ścieżki dołączonych plików nagłówkowych?
- 21. Użyj zewnętrznych plików nagłówkowych w MPLAB X IDE
- 22. Lista wszystkich zarejestrowanych plików w jednym zatwierdzeniu cvs
- 23. PROTOBUF_GENERATE_CPP nie generuje plików src i nagłówkowych
- 24. Dlaczego Objective-C używa plików nagłówkowych zamiast klas jednego pliku, takich jak Java?
- 25. Lista wszystkich zatwierdzeń (we wszystkich gałęziach) dla danego pliku
- 26. Gdzie metoda has_header Rubiego szuka plików nagłówkowych?
- 27. Lista plików w katalogu przy użyciu html
- 28. Lista funkcji Lua w pliku
- 29. C# Lista wszystkich podkatalogów "liścia" z EnumerateDirectories
- 30. Lista wszystkich plików zmienionych przez konkretnego użytkownika w subversion
Tak, spójrz na plik .C. Lub alternatywnie, możesz zerknąć na nagłówek główny, używając opcji -E kompilatora. – Shark
Oto wskazówka dla GCC: http://stackoverflow.com/questions/42308/tool-to-track-include-dependencies –
dla Visual Studio http://msdn.microsoft.com/en-us/library/hdkef6tk% 28v = vs.90% 29.aspx –