Portál AbcLinuxu, 30. dubna 2025 14:22
Dobrá zpráva. Musím popřít svoje předchozí informace o sice bleskově rychlém ale polofunkčním Code Assistu. A sice, že bleskové o je, to zůstává, ale navíc to i funguje. A popírám rád. S menším nadšením připouštím, že chyba byla – převážně - v místech mezi klávesnicí a židlí.
Chybu jsem nahlásil do bugzilly. CDT sdílí jednotnou bugzillu s celou plaformou Eclipse. https://bugs.eclipse.org/bugs/show_bug.cgi?id=204055 Tam se mi dostalo rozporuplných informací. Jednak, že CDT parser má s Qt specifiky problém, že podobný problém nemám jen já. Na druhou starnu jsem našel aktuální informace přímo od Douga Schaefera (hlavní vývojář), že by to mělo fungovat, že to mají ošetřené i pro Qt.
Zkusil jsem tedy načíst další projekty a vrtal se v konfiguraci a kladl si otázky, jak vlastně CDT zjistilo lokaci potřebných hlavičkových, nic jsem přeci nikam nezadával. Není naivní myslet si, že si je najde v Makefile, stejně jako to je schopen vlastní buildovací proces? V Javě se přeci také musí do build path dát odkazy na externí knihovny, jinak se kód hemží červenými vlnovkami pod textem a věřte mi, není to myšleno jako dekorace. Je to první krok u jakéhokoliv netriviálního importovaného projektu dát odkazy ba všechna ta JARka a někdy je to pěkná fuška,. Že by to bylo s C projekty snazší? Na tom mi něco nesedělo.
CDT se s hlavičkovými soubory nemaže, jde cestou nejmenšího odporu, ke každému projektu přiřadí rovnou celý adresář /usr/include a to rekurzivně. Jak je to nastavené na Windows netuším. Na Linuxu by se všechny hlavičkové soubory skutečně měli v /usr/include, případně /usr/local/include, nacházet. Ne tak docela. Na PCLinuxu jsou, z nějakého důvodu Qt hlavičky pod /usr/lib/qt3/include, resp. /usr/lib/qt4/include. Netuším proč, aby se netloukli dvě generace Qt nainstalované zároveň?
Stačilo přida /usr/lib/qt3/include do Project Properties – C/C++ General – Paths and symbols – Includes – GNU C++, pak rebuild index a najednou se začalo vše chovat jak mělo, všechny Qt i KDE třídy a funkce se obarvily do zelenkavé barvy, neklamné to znamení, že definice prvku je známá.
A chyba byla, převážně, na mé straně, ale tak úplně nevinně v tom CDT není. Nenalezené definiční soubory knihovny by měla Eclipse nějak detekovat a nahlásit. Místo toho se nechala pravděpodobně zmást forward deklaracemi a označila právě Qt prvky jako známé a naopak paradoxně velkou část KDE a vlastního projektu jako neznámé. Chybu jsem nahlásil v bugzille jako INVALID, ale chybka tam někde skutečně, jen někde trochu jinde. Než na ní někdo přijde, budu si užívat funkčního Content Assitu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.