Skocz do zawartości

Sprawdzenie Czy Funkcja Jest Zdefiinowna


abc

Rekomendowane odpowiedzi

Chciałbym kompilując program w gcc sprawdzić czy funkcja / zmienna o danej nazwie jest zdefiniowana.

Konkretniej, chciałbym zrobić coś w stylu

#ifdef nazwa
...
#else
...
#endif

gdzie nazwa jest nazwą funkcji lub zmiennej którą chce sprawdzić.

 

Potrzebne mi to do tego, że piszę moduł do jądra i chciałbym, aby jeden kod był kompilowalny z różnymi jego wersjami. Tyle że jądro szybko się zmienia, dodają nowe rzezy, kasują stare i nie latwo się w tym połapać.

 

Jakieś pomysły jak to zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

Parametry do kompilacji oczywiście mogę dodać, tyle że to wymaga ręcznego szperania w której wersji jądra dany symbol się pojawił, w której zniknął. Dlatego miałem nadzieję że nieco bardziej automatycznie to się da zrobić. No nic, będę jakoś kombinował. W sumie cudów się nie spodziewałem, skoro nawet google nic sensownego na ten temat powiedzieć mi nie potrafił ;-)

Odnośnik do komentarza
Udostępnij na innych stronach

Ostatecznie zrobiłem skrypt odpalany w makefile, który do tego makefile dodaje odpowiednie flagi kompilacji (-Dsymbol)

Sam skrypt sprawdza wersję jądra i generuje odpowiednie symbole.

I pozatym ograniczyłem ilość różnych define do minimum.

 

Rozwiązanie nie jest może najwygodniejsze, ale działa. Niesety moduł musi działać pod dość starą wersją jądra, a chciałem żeby działał też pod nowszą stąd zamieszanie. Ale przynajmniej czegoś się nauczyłem ;)

 

Dzięki za wszelki sugestie i pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...