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

Julien Michielsen julien op michkloo.xs4all.nl
Za Feb 11 06:46:43 CET 2012


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.
>>
>> Ik had het programma gib  goed werkend tot SuSE 11.3, maar onder het
>> huidige SuSE 12.1 krijg ik het programma niet meer geïnstalleerd. Om het
>> werkend te krijgen moet ik in de source van de X-interface een "make
>> install" uitvoeren, en dat resulteert in een sliert foutmeldingen.
>> Voorheen ging dit goed, maar nu niet meer.  Ik neem aan dat het probleem
>> zijn oorsprong vindt  in  de upgrade van X-widgets.  De interface onder
>> 11.1 bv. maakte probleemloos gebruik van versie 2.8.9.0, en suse 12.1
>> doet het met een hogere widgets-versie: 2.8.11.0 (en - naar ik begrijp -
>> staat wx-widgets op het ontwikkelpad naar versie 3)
> Ik ken die programma's allicht niet. Als je vanaf de broncode werkt is
> de kans op succes groter. Het eerste dat ik zo kan bedenken is dat je
> versie van 'gib' niet compatible is met de laatste versie van
> wx-widgets, dus dan is het voor de hand liggende alternatief om een
> nieuwere versie van gib te gebruiken of een oudere versie van
> wx-widgets (porteren naar nieuwere versie zal meer moeite kosten).
>
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&'

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:

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>

Hiertoe heb ik de includedir-lijn van de Makefile aangepast, en daaraan
alle headerfiles uit het wx-widgets pakket toegevoegd.  Ik stuur je
zodadelijk de source file van de user-interface, en ook de door mij
aangepaste Makefile (zoek daarin naar "julien" om mijn aanpassing
te vinden).
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? .................
> Misschien dat ik het komende weekeinde wat tijd over houd om daarin
> te duiken (als je alle info toestuurt).
>
>
> IJskoude groeten,
>
>
>
> Daniel von Asmuth
>
Hoop dat mijn warme dank je een beetje ontdooit  ;-)
Julien

-- 
Julien Michielsen
julien_at_michkloo.xs4all.nl





More information about the Linux mailing list