Portál AbcLinuxu, 22. května 2024 00:10


Dotaz: C++ a Qt - implementace knihovny

3.4.2014 17:42 phoenixes
C++ a Qt - implementace knihovny
Přečteno: 379×
Odpovědět | Admin
Dobrý den.

Předem uvádím, že nejsem bohužel pokročilý jak v Linuxu, tak v programování, ale potřebuji radu :-)

Vytvářím projekt v Qt creatoru pod Lubuntu. Program nebude zas tak složitý, ale potřebuji do toho projektu implementovat knihovnu libcrafter tak, abych mohl používat její funkce a dál psát C++ kód v Qt creatoru.

Jde mi jenom o tuhle konkrétní knihovnu, nicméně nemám žádné zkušenosti s implementací "cizí" knihovny do projektu.

Budu vděčný za každou radu. Pokud je toto příliš "začátečnický" dotaz, budu rád, pokud mě alespoň odkážete správným směrem.

Předem děkuji.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.4.2014 19:49 Sten
Rozbalit Rozbalit vše Re: C++ a Qt - implementace knihovny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím, jak je to přesně v Qt Creatoru, ale obecně se knihovny připojují takto:
  1. Pokud je knihovna z balíčků, je většinou potřeba nainstalovat nějaký vývojový balíček, např. libcrafter-dev, který obsahuje potřebné hlavičkové soubory.
  2. Mezi cesty k hlavičkovým souborům přidáme cestu k hlavičkovým souborům té knihovny (-Icesta). Není potřeba, pokud je knihovna instalovaná z balíčků.
  3. Linkeru přidáme do voleb, že má linkovat tuhle knihovnu (-lcrafter) a kde ji najde (-Lcesta). To druhé opět není potřeba, pokud je knihovna instalovaná z balíčků.
  4. A to je vše, stačí knihovnu použít (#include <...> a tak dále)
3.4.2014 21:43 Travellover
Rozbalit Rozbalit vše Re: C++ a Qt - implementace knihovny
Perfektni napoveda!

Jeste pridam, ze v QtCreatoru si budete moci vybrat projekt s QMake build systemem (pokud bude vase aplikace pouzivat QT pro UI, urcite pro zacatek volte QMake.

Alternativni volba je pouzit CMakeLists (CMake) build system (zjednodusene neco jako preprocessor skutecneho projektu/build systemu). CMake je volba pro multiplatformni projekt a/nebo pokud nechcete byt zavisly na qmake. Pokud ale nemate moc zkusenosti s takovym vyvojem, volte qmake.

Myslim ze posledni moznost je pouzit Makefiles, ale byla by to skoda, protoze podpora CMake nebo QMake je v QtCreatoru promakana.

Have fun!
3.4.2014 22:26 phoenixes
Rozbalit Rozbalit vše Re: C++ a Qt - implementace knihovny
Děkuji mockrát za rady.

Knihovnu jsem první "nainstaloval" dle readme souborů. Ovšem při Buildu jsem nedokázal linkeru v Qt creatoru předat ten parametr -lcrafter.

Tak jsem zkoušel alternativní postup, kdy jsem celý stažený archiv zkopíroval do složky projektu a použil jsem #include "cesta/crafter.h". Bohužel, ani tady jsem nebyl moc úspěšný. První to psalo, že funkce neexistuje "in the scope". Po nalezení správného hlavičkového souboru to píše "undefined reference to Crafter::GetMyIP".

Takže otázky jsou následující:

1) Jak přidat tomu linkeru v Qt ten správný parametr?

2) Je to moc velká prasárna, nakopírovat tam všechny ty soubory tak, jak jsem to udělal?

3) Máte někdo ponětí, jak to můžu zprovoznit v tom Qt? Když mi to normálně jde, když vytvořím jenom samotný .cpp soubor v terminálu a přeložím to pomocí g++ s -lcrafter?

Díky za Vaše reakce..
Řešení 1× (Roman Došek)
3.4.2014 23:21 Roman Došek | skóre: 17 | blog: flare
Rozbalit Rozbalit vše Re: C++ a Qt - implementace knihovny
Pokud používáš QMake, jakože asi jo, tak stačí do .pro souboru přidat následující věci:
INCLUDEPATH +=  /path/to/crafter/header/files

LIBS += -L/path/to/crafter/libs/
LIBS += -lcrafter
Prasárna to je, ale hlavně je to zbytečné :-)
5.4.2014 10:29 phoenixes
Rozbalit Rozbalit vše Re: C++ a Qt - implementace knihovny
Super, ty LIBS to vyřešily. Dával jsem tam nějaké FLAGS, které jsem vygoogloval, ale to nebylo ono.

Super, tak díky moc. Jdu pokračovat, vzhůru dalším problémům. :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.