[linux] Re: C-vraag (onder wx-widgets)

Daniel von Asmuth asmuth op bakunin.xs4all.nl
Za Feb 11 11:06:36 CET 2012


Aldus schreef Julien Michielsen op Sat, Feb 11, 2012 at 06:46:43AM +0100:
> On 02/07/12 19:57, Daniel von Asmuth wrote:
> > Aldus schreef Julien Michielsen op Tue, Feb 07, 2012 at 05:54:07PM +0100:
> >> Ik heb een bridge-programma (kaartspel) dat het c-programma "gib"
> >> als basis heeft, en daaromheen is onder X-widgets een interface naar
> >> X geconstrueerd.
> >> Mocht je ervaring hebben met wx-widgets, dan zou je mij mogelijk kunnen
> >> helpen.  Is dat niet het geval, dan kun je mogelijk net zo goed stoppen
> >> met lezen, omdat ik hierbeneden vragen stel die een zekere ervaring
> >> op dit gebied verwachten.
> >>
> Nee, ik had ook niet verwacht dat je graag bridget, en dit programma
> op je computer hebt staan. Maar dat is ook niet nodig, en niet belang-
> rijk.  Rond het kernprogramma gib is een interface naar X geschreven,
> die laat zien hoe het biedverloop gaat, en welke kaarten je nog in je hand
> hebt.  Die interface is geschreven in C++, en maakt gebruik van x-widgets.
> En daar wringt de schoen: reeds tijdens de compilatie rollen de fout-
> meldingen over het scherm, zoals:

> make
> g++ -c -MMD -O2 -Wall  
> -I/usr/lib/wx-2.8-wxcontainer/wx/include/gtk2-unicode-release-2.8 
> -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ 
> -pthread -o gib.o gib.cpp
> In file included from gib.cpp:46:0:
> config.h:27:30: error: conversion from 'const char [6]' to 'const 
> wxString' is ambiguous
> config.h:27:30: note: candidates are:
> /usr/include/wx-2.8/wx/string.h:692:3: note: wxString::wxString(wxChar, 
> size_t) <near match>
> /usr/include/wx-2.8/wx/string.h:692:3: note:   no known conversion for 
> argument 1 from 'const char [6]' to 'wxChar {aka wchar_t}'
> /usr/include/wx-2.8/wx/string.h:682:3: note: wxString::wxString(int) 
> <near match>
> /usr/include/wx-2.8/wx/string.h:682:3: note:   no known conversion for 
> argument 1 from 'const char [6]' to 'int'
> config.h:144:31: error: call of overloaded 'wxString(const char [5])' is 
> ambiguous
> config.h:144:31: note: candidates are:
> /usr/include/wx-2.8/wx/string.h:722:3: note: wxString::wxString(const 
> wxWCharBuffer&) <near match>
> /usr/include/wx-2.8/wx/string.h:722:3: note:   no known conversion for 
> argument 1 from 'const char [5]' to 'const wxWCharBuffer&'

Het bovenstaande zegt dat de compiler een probleem heeft met regel 46
van gib.cpp en daar citeert-ie een stapel .h files bij om zijn gelijk
te bewijzen. Vermoedelijk is dit te repareren met een kleine aanpassing.
Het is C++ en dat is een stukje trickier dan gewoon C.

> We zijn dus nog niet aan het link-proces toe, want make houdt al op voor
> de compilatie is afgerond. Er is dus geen sprake van een "versie van 
> 'gib' die
> niet compatible is met de laatste versie van wx-widgets".  Om te zien of dat
> een probleem zou zijn moet op zijn minst de compilatie foutloos worden
> afgerond.  Wèl worden de headers uit wx-widgets goed gevonden, zoals je
> in de foutmeldingen hierboven kunt lezen, zoals op de 6° en 7° regel:

Het probleem moet inderdaad gezocht worden in de code die u hier
probeert te compileren en wx-widgets. De foutmeldingen suggeren
incompatibiliteit met de preciese definitie van het data type wxString.

> Later vandaag (of zo snel ik eraan toekom, want heb heel nare
> dingen aan mijn hoofd) zal ik dit op mijn website zetten, mochten
> mensen van de lijst mee willen kijken hoe dit gecompileerd te krijgen.
> Het zou toch moeten kunnen: file uitpakken en make uitvoeren.
> Wie, oh wie zegt mij hoe? .................

- source downloaden
- source uitpakken
- source compileren
- bugs fiksen
- verbeterde source compileren (zonodig vorige stap herhalen)
- uitvoerbaar programma installeren
- programma testen
- verbeterde versie naar de auteur sturen

> > Misschien dat ik het komende weekeinde wat tijd over houd om daarin
> > te duiken (als je alle info toestuurt).

'make' zal er na de eerste fout mee ophouden. Dus is het moeilijk in
te schatten hoelang het gaat kosten om alles te fiksen.

> > IJskoude groeten,
> >
> >
> > Daniel von Asmuth
> >
> Hoop dat mijn warme dank je een beetje ontdooit  ;-)
> Julien

Limburg is geen schaatsvolk zoals Friesland.



Daniel. 

-- 
	
		People who bought this story also bought....



More information about the Linux mailing list