Portál AbcLinuxu, 12. května 2025 04:15
make[1]: Entering directory `/home/ok2cqr/tmp/TrustedQSL-1.11'
if g++ -DHAVE_CONFIG_H -I. -I. -I. -Wall `"/usr/bin/wx-config" --cxxflags` -I/usr/include -I/usr/include -I/usr/include -g -O2 -MT tqsl.o -MD -MP -MF ".deps/tqsl.Tpo" -c -o tqsl.o tqsl.cpp; \
then mv -f ".deps/tqsl.Tpo" ".deps/tqsl.Po"; else rm -f ".deps/tqsl.Tpo"; exit 1; fi
In file included from tqslwiz.h:31,
from tqsl.cpp:40:
certtree.h: In member function ‘CertTreeItemData* CertTree::GetItemData(int)’:
certtree.h:51: error: invalid conversion from ‘int’ to ‘void*’
certtree.h:51: error: initializing argument 1 of ‘wxTreeItemId::wxTreeItemId(void*)’
CertTreeItemData *GetItemData(int id) { return (CertTreeItemData *)wxTreeCtrl::GetItemData(id); }
Moje znalost C a C++ je velmi spatna. Vim co ta chyba znamena, ale vubec netusim jak to v tom zdrojaku opravit. Muzete mi prosim poradit?
Dekuji za pripadnou pomoc.
Petr
Řešení dotazu:
V případě, že to chceš kompilovat s novou verzí knihovny, tak se připrav na to, že tohle může být pouze jedna z mnoha změn ve verzi 2.8 oproti 2.4 a Ty je všechny budeš muset opravovat...
Nebylo by lepší rovnou k TrustedQSL přikompilovat verzi 2.4, binárka bude sice trochu větší, ale nebudeš muset vytvářet patch, pro verzi 2.8.
wxTreeCtrl::GetItemData
deklarované ako
wxTreeItemData* GetItemData(const wxTreeItemId& item) const
Tipujem, že sa kompilátor sťažuje na to, že miesto
const wxTreeItemId& item
sa tam posiela
int id
Je otázne ako to riešiť. Môžeš to skúsiť pretypovať
...wxTreeCtrl::GetItemData((wxTreeItemId)id);
Môžeš skúsiť pátrať po tom, či TrustedQSL má fungovať s tou verzou wxWidgets, ktorú máš (a teda či platí tá deklarácia, ktorá je v tej dokumentácii). Alebo môžeš skúsiť nechať to prejsť pre-processorom a pozrieť čo tam vlastne má byť:
g++ -DHAVE_CONFIG_H -I. -I. -I. -Wall `"/usr/bin/wx-config" --cxxflags` -I/usr/include -I/usr/include -I/usr/include -E -MT tqsl.o -MD -MP -MF ".deps/tqsl.Tpo" -c -o tsql.txt tqsl.cpp
- a potom pozrieť do tsql.txt a nájsť ako vlastne vyzerá tá definícia GetItemData v CertTree a ako vyzerá GetItemData vo wxTreeCtrl.
CertTreeItemData *GetItemData(wxTreeItemId id) { return (CertTreeItemData *)wxTreeCtrl::GetItemData(id); }
Díky všem za rady a trpělivost.
Petr
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.