Installed Qt6.8.2 - now cmake cannot find Qt6 components
-
No, you should have stopped at the cmake level.
-
But now I want to add Graphs component:
find_package(Qt6 COMPONENTS Gui Quick Graphs REQUIRED)
But cmake fails:
-- Could NOT find Qt6Graph (missing: Qt6Graph_DIR) CMake Error at src/qt-guilib/CMakeLists.txt:25 (find_package): Found package configuration file: /home/oreilly/Qt6.8/6.8.2/gcc_64/lib/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND. Reason given by package: Failed to find required Qt component "Graph". Expected Config file at "/home/oreilly/Qt6.8/6.8.2/gcc_64/lib/cmake/Qt6Graph/Qt6GraphConfig.cmake" does NOT exist
I looked in the online installer, didn't see any "custom" installation for Graphs - How can I install it?
Thanks!
-
There's something wrong somewhere. Your components show graphs yet cmake is warning about graph. Did you forget the s in your
CMakeLists.txt
? -
@SGaist
I tried both "Graph" and "Graphs" - here is output from "Graphs":Found package configuration file: /home/oreilly/Qt6.8/6.8.2/gcc_64/lib/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND. Reason given by package: Failed to find required Qt component "Graphs". Expected Config file at "/home/oreilly/Qt6.8/6.8.2/gcc_64/lib/cmake/Qt6Graphs/Qt6GraphsConfig.cmake" does NOT exist
-
The problem is that in Qt 6.8.2, the Graphs headers, cmake and libraries components are only found in the Tools/QtDesignStudio directory; e.g. on my system in $HOME/Qt6.8/Tools/QtDesignStudio/qt6_design_studio_reduced_version. But I do not use QtDesignStudio as I've found it to be very buggy in ubuntu 22.04.3.
It's a pain-in-the-neck but I had to manually create symbolic links in order to build with Qt6 Graphs on my system:ln -s ~/Qt6.8/Tools/QtDesignStudio/qt6_design_studio_reduced_version/lib/cmake/Qt6Graphs ~/Qt6.8/6.8.2/gcc_64/lib/Qt6Graphs ln -s ~/Qt6.8/Tools/QtDesignStudio/qt6_design_studio_reduced_version/lib/libQt6Graphs.so.6.8.0 ~/Qt6.8/6.8.2/gcc_64/lib/libQt6Graphs.so.6.8.0 ln -s ~/Qt6.8/Tools/QtDesignStudio/qt6_design_studio_reduced_version/include/QtGraphs ~/Qt6.8/6.8.2/gcc_64/include/QtGraphs
Perhaps I could avoid making these symbolic links through clever use of environment variables, but the above seems to work now.
I assume and hope that the Graphs components will be moved from Tools/QtDesignStudio into the "standard" directory (e.g 6.8.x/) in future releases.
-
Almost there...
I add the following to my app's qml file as described here:import QtGraphs
I build my app with cmake as described above but when I run it, it generates an error and segfaults:
module "QtGraphs" is not installed Segmentation fault (core dumped)
What am I missing now?
Thanks! -
Did you check that you installed the optional components in the installer ?
-
@SGaist - I selected "Qt 6.8 for desktop development" in the online installer. As noted above the downloaded components included Qt Graphs code and libraries under the Tools/QtDesignStudio/ directory - I had to make some symbolic links to those in order to build my code (I do not use QtDesignStudio). I can compile and link my application, but "import QtGraphs" fails at runtime. Where are the "optional components" you refer to? If I select "Custom Installation" instead of "Qt 6.8 for desktop development" I don't see options obviously related to Qt Graphs.
-
@Tom-asso said in Installed Qt6.8.2 - now cmake cannot find Qt6 components:
I had to make some symbolic links to those in order to build my code (I do not use QtDesignStudio)
This is wrong Qt modules are not installed in Tools/QtDesignStudio!
"Where are the "optional components" you refer to?" - in the Qt installer or Qt maintenance tool. -
OK I was using online-installer and MaintenanceTool incorrectly. For my own edification/notes, the "correct" way for Qt desktop seems to be:
- Run installer, specify "Qt" as Qt destination directory, then specify "Qt 6.8 for desktop development"
- Run downloaded Qt/MaintenanceTool , select Add or remove components
Qt->Qt6.8.2->Additional libraries->Qt Graphs (plus preselected libraries)
Thanks for your help everyone.
-
T Tom asso has marked this topic as solved