Portál AbcLinuxu, 10. května 2025 06:32
Ahoj,
není mi jasná jedna věc. Mám program v c++, v hlavičce vkládám knihovnu.
Při sestavení programu pomocí qmake funguje "include<QtOAuth>", ale když jsem to zkoušel přepsat pod CMake, musím použít "include<QtOAuth/QtOAuth>".
V čem je rozdíl a proč? V CMakeLists není nic zvláštního, QtOAuth si ještě vyžádalo QCA2, aby se to skompilovalo, ale jinak v pohodě.
Moc prosím o vysvětlení, díky mockrát.
Řešení dotazu:
Záleží na tom, jak vypadá seznam adresářů, ve kterých se hlavičkové soubory hledají, ten můžete ovlivnit přepínačem -I
. Tipoval bych, že ve vašem případě qmake automaticky přidává adresáře s hlavičkovými soubory knihovny Qt.
Hnidopišská poznámka: includují se hlavičkové soubory, ne knihovny.
Aha, tak takhle to je.
No jo, měl jsem nejdřív použít hlavu, když si nechám vypsat proměnné:
MESSAGE("QtOAuth include dir: ${QTOAUTH_INCLUDE_DIR}") MESSAGE("QtOAuth library: ${QTOAUTH_LIBRARY}")
Tak dostanu:
QtOAuth include dir: /usr/include QtOAuth library: /usr/lib/libqoauth.so
Logické, děkuji mockrát.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.