gesetzte Macros erfragen



  • Hallo

    ich versuche ein Programm zu kompelieren, habe aber probleme mit manchen Bibliotheken und denke es liegt an der Version, bin mir aber nicht sicher und weiß nicht wie ich die Makros erfrage.

    in ldconfig sehe ich eine höhere Bibliothekversion (3.4.x) und das programm braucht (3.3.x). Ich versuchte

    CPPFLAGS="-DHAVE_LIB_3_3"
    

    das hat aber nicht geholfen - jedoch ist dieser flag im Makefile gesetzt.

    Mache ich was falsch und wie erfahre ich gesetzte macros?



  • Wenn überhaupt musst du so abfragen

    if(CPPFLAGS=="-DHAVE_LIB_3_3")
    

    Und Dann kommts ganz auf die library an. Direct X hat immer ein Makro für die aktuelle Version schreib pls um welche Library es sich handelt.



  • ich setze CPPFLAGS über configure script im Makefile, deswegen erscheint im Makefile auch

    CPPFLAGS = -DHAVE_LIBUSRP_3_3
    

    Brauchen tue ich die HAVE_LIBUSRP_3_3 und weiß nicht welche ich habe und wie ich die gesetze g++ makros erfrage.

    sowas wie "set" befehl, nur für g++



  • Makros können nur über den Präprozessor abgefragt werden, also z.B.

    #ifdef HAVE_LIBUSRP_3_3
    
    #else
      #error I need this macro!
    #endif
    

    (bzw. alternativ #ifndef oder #if defined(...)).



  • um dadurch ausgaben zu bekommen, müsste ich ja erst das programm kompilieren können ... und genau das kann ich nicht! -Die schlange beißt sich da in den Schwanz - es müsste einen aderen Weg geben


Anmelden zum Antworten