Compiler Error

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
commandlinefetischist
Beiträge: 20
Registriert: 15.06.2007 20:23:13

Compiler Error

Beitrag von commandlinefetischist » 19.08.2007 00:01:03

Hallo
Hier mal nochn Porblem von mir ^^

AIInterface.cpp: In member function 'void AIInterface::_UpdateCombat(uint32)':
AIInterface.cpp:830: error: call of overloaded 'abs(float)' is ambiguous
/usr/include/stdlib.h:778: note: candidates are: int abs(int)
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/cstdlib:172: note: long long int __gnu_cxx::abs(long long int)
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/cstdlib:142: note: long int std::abs(long int)
es MUSS am compiler liegen da es auf meiner sarge kiste gut funktioniert


etch (dort buggt es) :
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
gcc version 3.3.5 (Debian 1:3.3.5-13) [g++]


sarge (dort funktioniert es):
gcc version 3.3.5 (Debian 1:3.3.5-13)
gcc version 3.3.5 (Debian 1:3.3.5-13) [g++]

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 19.08.2007 00:05:45

commandlinefetischist hat geschrieben: es MUSS am compiler liegen da es auf meiner sarge kiste gut funktioniert
etch (dort buggt es) :
wenn der neuere Compiler einen Fehler findet, den der alte nicht gefunden hat, hat der neue Compiler noch lange keinen Bug!
"caste" doch einfach beim Aufruf von "abs"

commandlinefetischist
Beiträge: 20
Registriert: 15.06.2007 20:23:13

Beitrag von commandlinefetischist » 19.08.2007 00:12:13

Sorry aber in cpp bin ich noch am Lernen könntest du mir sagen in was ich es casten soll und/oder mir nen beispiel geben bitte?^^

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 19.08.2007 00:15:44

der alte Compiler liefert übrings eine Warnung:

Code: Alles auswählen

root@gms4:~# g++-3.3 -o x x.cpp
x.cpp: In function `int main()':
x.cpp:5: Warnung: converting to `int' from `float'
root@gms4:~# g++-2.95 -o x x.cpp
x.cpp: In function `int main()':
x.cpp:5: warning: `float' used for argument 1 of `abs(int)'
statt "abs(....)" machst du ein "abs((int)(....))"
ist zwar nicht "schön", sollte aber das gleiche machen wie mit dem alten Compiler
Zuletzt geändert von gms am 19.08.2007 00:17:24, insgesamt 1-mal geändert.

commandlinefetischist
Beiträge: 20
Registriert: 15.06.2007 20:23:13

Beitrag von commandlinefetischist » 19.08.2007 00:17:08

ok danke für die antwort ich werd drüber schlafen und es morgen mal versuchen

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 19.08.2007 00:21:01

wenn du dir unsicher bist, dann poste die Zeile 830 aus AllInterface.cpp
ist allerdings keine große Übung das auszubessern

edit: mit dem gcc-3.3 oder gcc-3.4 müßte es auch ohne der Änderung funktionieren
Zuletzt geändert von gms am 19.08.2007 00:26:07, insgesamt 1-mal geändert.

commandlinefetischist
Beiträge: 20
Registriert: 15.06.2007 20:23:13

Beitrag von commandlinefetischist » 19.08.2007 00:30:21

wenn ich g++-3.4 installiere kommt dies:

Unpacking g++-3.4 (from .../g++-3.4_3.4.6-5_i386.deb) ...
Setting up gcc-3.4-base (3.4.6-5) ...
Setting up cpp-3.4 (3.4.6-5) ...
Setting up gcc-3.4 (3.4.6-5) ...
Setting up g++-3.4 (3.4.6-5) ...
Setting up libstdc++6-dev (3.4.6-5) ...
Debian-40-etch-32-minimal:~/# g++
-bash: g++: command not found


die zeile:

Code: Alles auswählen

						if(abs(our_facing-his_facing)<CREATURE_DAZE_TRIGGER_ANGLE && !m_nextTarget->HasNegativeAura(CREATURE_SPELL_TO_DAZE))
ich glaube ehr weniger das diese zeile hilft ^^

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 19.08.2007 00:32:04

du mußt schon auch "g++-3.4" aufrufen

die geänderte Zeile

Code: Alles auswählen

                 if(abs((int)(our_facing-his_facing))<CREATURE_DAZE_TRIGGER_ANGLE && !m_nextTarget->HasNegativeAura(CREATURE_SPELL_TO_DAZE))

commandlinefetischist
Beiträge: 20
Registriert: 15.06.2007 20:23:13

Beitrag von commandlinefetischist » 19.08.2007 00:39:39

Ah jetz habichs verstanden
Vielen Dank!
Es funkioniert nun wunderbar^^

Antworten