[SOLVED] CMAKE bestimmte Version einer .so verlinken
-
Hallo,
ich versuche mit CMAKE die occi (Oracle C++ Call Interface) einzubinden.
Diese benötigt die libstdc++.so in der Version 5 (welche veraltet ist), nun hab ich die Versionen 5 (libstdc++.so.5) und 6 (libstdc++.so.6) da.
Wie kann ich cmake beibringen die Version 5 zu linken?Folgendes hab ich schon probiert:
FIND_LIBRARY( STDC_LIBRARY NAMES libstdc++.so.5 PATHS /usr/lib )
IF ( ${STDC_LIBRARY} )
MESSAGE( STATUS "LIBSTDC++ found" )
ELSE ( ${STDC_LIBRARY} )
MESSAGE( FATAL_ERROR "LIBSTDC++ not found" )
ENDIF ( ${STDC_LIBRARY} )Das klappt nicht.
Wenn ich nicht versuch eine bestimmte Lib einzubinden, wird automatisch die Version 6 verlinkt, welches dann in einer Warnung des Linkers endet und den Absturz des Programmes zur Folge hat.
Hoffe ihr könnt mir weiterhelfen
MfG
PyrokarPS:
CMake 2.8.0
Ubuntu 10.04
OCCI: Oracle XE 10.2.0
-
Fügt er denn die .so.5-Variante beim linken hinzu bzw. findet er sie überhaupt? Wenn ja, dann musst du ggf. verhindern, dass er die libstdc++ linkt. Das geht mit -nodefaultlibs. Aber dann musst du vermutlich auch libgcc und libc linken. Schau mal in der GCC-Doku.
-
Danke für die Antwort,
hab mir die man Page vom ld angeschaut und versucht die lib direkt zu linken, nachdem ich dann auch den Pfad mit dazugeschrieben hab hat alles ohne Probleme geklappt:TARGET_LINK_LIBRARIES({target} {libs...} /usr/lib/libstdc++.so.5)
Danke und MfG
Pyrokar