Cannot determine dependencies of qtposition_nmea.dll
-
the full error message is this:
Warning: Cannot determine dependencies of C:\Users\davec\Developer\Qt\6.9.0\msvc2022_64\plugins\position\qtposition_nmea.dll: Unable to find dependent libraries of C:\Users\davec\Developer\Qt\6.9.0\msvc2022_64\bin\Qt6SerialPort.dll :Cannot open 'C:/Users/davec/Developer/Qt/6.9.0/msvc2022_64/bin/Qt6SerialPort.dll': The system cannot find the file specified.
just trying to use QtWebEngineView
-
the full error message is this:
Warning: Cannot determine dependencies of C:\Users\davec\Developer\Qt\6.9.0\msvc2022_64\plugins\position\qtposition_nmea.dll: Unable to find dependent libraries of C:\Users\davec\Developer\Qt\6.9.0\msvc2022_64\bin\Qt6SerialPort.dll :Cannot open 'C:/Users/davec/Developer/Qt/6.9.0/msvc2022_64/bin/Qt6SerialPort.dll': The system cannot find the file specified.
just trying to use QtWebEngineView
@davecotter said in Cannot determine dependencies of qtposition_nmea.dll:
C:/Users/davec/Developer/Qt/6.9.0/msvc2022_64/bin/Qt6SerialPort.dll
So, does it exist?
-
hmm, so, you're saying that, in the Qt Maintenance Tool (Installer), merely selecting a module to install does not install its dependencies?
i'd consider that a bug. yes? no?
-
hmm, so, you're saying that, in the Qt Maintenance Tool (Installer), merely selecting a module to install does not install its dependencies?
i'd consider that a bug. yes? no?
@davecotter I'm wondering why qtposition_nmea.dll should depend on Qt6SerialPort?! Strange.
-
hmm, so, you're saying that, in the Qt Maintenance Tool (Installer), merely selecting a module to install does not install its dependencies?
i'd consider that a bug. yes? no?
@davecotter It's a plugin, so it may be an addition and not necessary. Is QtWebEngineView not able to run without it?
-
I did not try yet. i've added QtSerialPort and no longer get that link error.
note my app is a Widgets app, but it seems that adding QtWebEngine adds all the QtQuick dlls? is that because the web engine uses qtquick?? i'd rather not add things that aren't strictly necessary -
@davecotter I'm wondering why qtposition_nmea.dll should depend on Qt6SerialPort?! Strange.
@jsulm said in Cannot determine dependencies of qtposition_nmea.dll:
@davecotter I'm wondering why qtposition_nmea.dll should depend on Qt6SerialPort?! Strange.
i wonder the same.
also why does it depend on QtQuick? -
@jsulm NMEA 0183 is a combined data/electrical specification for communication with a range of devices, most often GPS units. The specification is serial ASCII over RS-422 or RS-232, which is why serial port access would be useful to a QtPositioning NMEA plugin.
-
i thought QtPositioning was to help lay things out in a window? not related to GPS?
-
i thought QtPositioning was to help lay things out in a window? not related to GPS?
@davecotter there is no need to guess, all modules have their purpose documented: https://doc.qt.io/qt-6/qtpositioning-index.html
-
i was just going by what i saw in the Maintenance tool installer, which doesn't mention GPS:
-
so my question becomes: why is it that, when i select to install QtWebEngine, that it does not AUTOMATICALLY install all dependencies? isn't that kindof what the installer's job is?
-
@davecotter said in Cannot determine dependencies of qtposition_nmea.dll:
i was just going by what i saw in the Maintenance tool installer, which doesn't mention GPS:
It also does not mention screen layout. Assumptions are not always right.
Regarding the installer: It does install everything that anyone might ever use because, for a good portion of the time, most will not use all of it. Programmers can surely handle a few simple dependencies.
If you really had to pick on the installer, you could note that installing Qt Web Engine does not force Qt Positioning, and that is a direct dependency.
$ ldd ~/Qt/6.8.1/gcc_64/lib/libQt6WebEngine*.so | grep -i positio libQt6Positioning.so.6 => /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6Positioning.so.6 (0x000072063235b000) libQt6Positioning.so.6 => /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6Positioning.so.6 (0x00007dac80f05000) libQt6Positioning.so.6 => /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6Positioning.so.6 (0x00007a29ad35b000)
There's no direct dependency between any Qt Web Engine library and Qt Serial.
There's no direct dependency of the Qt Positioning libraries on Qt Serial.$ ls ~/Qt/6.8.1/gcc_64/lib/libQt6WebEngine*.so /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6WebEngineCore.so /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6WebEngineQuick.so /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6WebEngineQuickDelegatesQml.so /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6WebEngineWidgets.so $ ldd ~/Qt/6.8.1/gcc_64/lib/libQt6WebEngine*.so | grep -i serial $ ls ~/Qt/6.8.1/gcc_64/lib/libQt6Positioning*.so /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6PositioningQuick.so /home/chrisw/Qt/6.8.1/gcc_64/lib/libQt6Positioning.so $ ldd ~/Qt/6.8.1/gcc_64/lib/libQt6Positioning*.so | grep -i serial
There is a direct dependency of one Qt Positioning plugin on Qt Serial:
$ ldd /home/chrisw/Qt/6.8.1/gcc_64/plugins/position/libqtposition_nmea.so | grep -i serial libQt6SerialPort.so.6 => not found
Programs using Qt Web Engine and Qt Positioning will run whether that plugin is present or not. If you do not want runtime dependency on Qt Serial Port, then do not deploy the NMEA positioning plugin and do not attempt to use its functionality.
-
thanks for your reply.
you're correct QtPositioning doesn't mention screen layout. My partial point was that without specifics, the mind's default mode is to substitute what it feels is most likely. This doesn't FEEL like making an assumtion to the mind-user, it feels like what is. the other half of the point, to put it more directly is: the text blurb should disambiguate between position==widget layout vs. position==lat/long.
regarding installer: we have computers to manage things for us, so that we don't have to. my expectation, even as a programmer, is that the program would manage the minutia of installer dependencies. yes, i'm smart enough to learn for myself what depends on what, but if i were the programmer of the installer, i'd have built my knowledge INTO the installer, and not assume that all users of the installer will re-learn what i already know JUST to get a compile without warnings or errors.