PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Licq und libstdc++



an0nym
08.12.02, 00:42
Hallo,

ich habe folgendes Problem, ich will LICQ 1.2.0a kompilieren.
configure endet mit folgendem Fehler:
checking for vector.h... no
configure: error: You need to have the libstdc++ headers installed

Die libstdc++ devel sind aber installiert, die vector.h liegt unter /usr/include/g++/backward/vector.h .

configure.log sagt folgendes:
[...
]configure:2964: checking for vector.h
configure:2974: c++ -E -fPIC -DPIC -D_REENTRANT conftest.C >/dev/null 2>conftest.out
In file included from /usr/include/g++/backward/vector.h:59,
from configure:2970:
/usr/include/g++/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
configure: failed program was:
#line 2969 "configure"
#include "confdefs.h"
#include <vector.h>


Was mache ich falsch? Wieso funktioniert das ganze nicht?

thx und schönen 2 .Advent

WuTScH
16.12.02, 17:16
Moin,

hab das selbe Problem, er will immer die libstdc++ headers haben, wo bekomm ich die her, weil bei meinem Mandrake 9 waren sie offenbar nich dabei, und sons find ich die nirgendwo :(

Man helfe uns bitte ;)

mfg
WuTScH

PS: Nein, di Suchfunktion hat mich nicht weitergebracht, die haben das ding offenbar alle gefunden :(

HackThor
16.12.02, 18:38
Hi!

Ich lese aus der Fehlermeldung des "configure.log" folgendes raus:
Der LICQ will unbedingt die Datei "vector.h" haben. Leider wird dort anscheinend eine Datei "backward_warning.h" eingebunden die einfach nur sagt

#include nicht "vector.h" sondern "vector" wenn du die Datei haben willst, der Einsatz .der ".h"-Dateien ist alt und wird demnächst eingestellt.

Da nutzt LICQ wohl (ur)alte C++-Includes - das ".h" ist schon ne Weile nicht mehr aktuell. Und der neue GCC ist (endlich...) dementsprechend ignorant und akzeptiert das nicht :)

1. Lösung - alle "vector.h" gegen "vector" (und alle anderen C++-Header auch) tauschen. Das müßte dann der LICQ Maintainer machen.
2. den configure mit
CFLAGS=-Wno-deprecated ./configure.... (so auf einer Zeile, die "..." sind für eventuell gesetzte Optionen wie "--prefix=/opt/licq") aufrufen. Das erwähnte Flag müßte dadurch gesetzt werden, die Warnung wird übersprungen und der configure läuft ohne Fehler durch (eventuell, wenn's nicht geht, auch "CXXFLAGS" bzw. "CPPFLAGS" auf diesen Wert setzen)

Probiert`s mal...

ciao

Michael

an0nym
16.12.02, 20:06
Hallo!


Original geschrieben von HackThor

Ich lese aus der Fehlermeldung des "configure.log" folgendes raus:
Der LICQ will unbedingt die Datei "vector.h" haben. Leider wird dort anscheinend eine Datei "backward_warning.h" eingebunden die einfach nur sagt

#include nicht "vector.h" sondern "vector" wenn du die Datei haben willst, der Einsatz .der ".h"-Dateien ist alt und wird demnächst eingestellt.


Ah. Ein Blick in die backward.... verrät das diese nur den genannten Text enthält und die vector.h diese einbindet.
Was ich aber nicht kapiere ist die Sache mit den Headern unter C++. Unter C werden die immer noch mit .h geschrieben,
ist das bei C++ anders?



1. Lösung - alle "vector.h" gegen "vector" (und alle anderen C++-Header auch) tauschen. Das müßte dann der LICQ Maintainer machen.
2. den configure mit
CFLAGS=-Wno-deprecated ./configure.... (so auf einer Zeile, die "..." sind für eventuell gesetzte Optionen wie "--prefix=/opt/licq") aufrufen. Das erwähnte Flag müßte dadurch gesetzt werden, die Warnung wird übersprungen und der configure läuft ohne Fehler durch (eventuell, wenn's nicht geht, auch "CXXFLAGS" bzw. "CPPFLAGS" auf diesen Wert setzen)


Es funzt übrigens mit:
CXXFLAGS=-Wno-deprecated CPPFLAGS=-Wno-deprecated ./configure .

Wofür sind die CXXFLAGS? (XX?) Wo ist der Unterschied zwischen beiden, was bewirken sie. Sie übergeben
doch dem Compiler quasi, das er trotz des .h die Header nehmen soll und die Warnung übersprungen wird. Oder?

thx