Missing "qmap.h" header in Sierra QMI Linux SDK, SLQS version 04.00.13

Hello

I am using Sierra QMI Linux SDK, SLQS version 04.00.13. It seems that it is missing “qmap.h” header file.
When I compiled my code using header files of SLQS, it gave an error of:
“…/slqs/api/dcs/inc/qaGobiApiDcs.h:21:18: fatal error: qmap.h: No such file or directory”

In qaGobiApiDcs.h at line 21, it has #include “qmap.h”

However, I can’t find any qmap.h file in SLQS directory.

Am I missing something?

It works fine when I was using an old version SLQS

Thanks,
Shuo

I would like to add that I get the same thing when trying to compile on x86_64 Ubuntu 16.04 . I used apt-get install qtbase5-dev to install the header ( https://packages.ubuntu.com/trusty/amd64/qtbase5-dev/filelist ), modified the makefile to include the path it was installed into, and then ran into a whole bunch of compilation errors. I couldn’t find any documentation about what prerequisites were required for building the SDK SampleApps, but they are unable to compile on what I believe to be a very standard setup.

Similar Problem, has anyone resolved this?

Hi,
qmap.h is contained in the GobiNet driver sources available from https://portland.source.codeaurora.org/patches/quic/gobi/Gobi_Linux/ and presumably also in the Sierra Wireless Gobi driver sources.

Maybe using qmap.h from one of the sources above helps to solve the compilation problem.

Regards,
Reinhard

Hi Reinhard,

Thanks for the response. I will try loading the Gobi-Linux code base and pointing at it.

For Reference, Below are the errors I am seeing when I pull in qtbase5-dev:

root@ruff:/home/fsmith/sierra/SampleApps/Firmware_Download# make
obj/hostx86_64/ exists - good.
Compiling src/fwDld_main.c
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:37:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:38,
from …/…/api/dcs/inc/qaGobiApiDcs.h:21,
from …/…/api/SWIWWANCMAPI.h:33,
from inc/fwDld_common.h:14,
from inc/fwDld_main.h:14,
from src/fwDld_main.c:12:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:48:1: error: unknown type name ‘namespace’
namespace QAlgorithmsPrivate {
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:48:30: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
namespace QAlgorithmsPrivate {
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:37:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:38,
from …/…/api/dcs/inc/qaGobiApiDcs.h:21,
from …/…/api/SWIWWANCMAPI.h:33,
from inc/fwDld_common.h:14,
from inc/fwDld_main.h:14,
from src/fwDld_main.c:12:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:72:10: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename InputIterator, typename OutputIterator>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:80:10: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename BiIterator1, typename BiIterator2>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:88:10: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename InputIterator1, typename InputIterator2>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:97:10: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename ForwardIterator, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:104:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename Container, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:110:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename InputIterator, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:118:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename Container, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:124:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename InputIterator, typename T, typename Size>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:132:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename Container, typename T, typename Size>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:149:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:159:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:170:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:177:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename LessThan>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:184:9: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:195:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:202:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename LessThan>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:209:9: error: expected ‘ ’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:220:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:243:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename T, typename LessThan>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:249:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename Container, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:255:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:276:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename T, typename LessThan>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:282:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename Container, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:288:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:300:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename RandomAccessIterator, typename T, typename LessThan>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:306:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template <typename Container, typename T>
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:313:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:322:10: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token
template
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:332:1: error: unknown type name ‘namespace’
namespace QAlgorithmsPrivate {
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:332:30: error: expected =’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
namespace QAlgorithmsPrivate {
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:542:52: error: conflicting types for ‘qPopulationCount’
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint8 v) Q
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:529:52: note: previous definition of ‘qPopulationCount’ was here
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint32 v)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:552:52: error: conflicting types for ‘qPopulationCount’
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint16 v)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:529:52: note: previous definition of ‘qPopulationCount’ was here
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint32 v)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:563:52: error: conflicting types for ‘qPopulationCount’
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint64 v)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:529:52: note: previous definition of ‘qPopulationCount’ was here
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint32 v)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:578:52: error: conflicting types for ‘qPopulationCount’
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(long unsign
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:529:52: note: previous definition of ‘qPopulationCount’ was here
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint32 v)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h: In function ‘qPopulationCount’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:580:29: error: ‘static_cast’ undeclared (first use in this function)
return qPopulationCount(static_cast(v));
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:580:29: note: each undeclared identifier is reported only once for each function it appears in
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:580:41: error: expected expression before ‘quint64’
return qPopulationCount(static_cast(v));
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:578:87: error: unused parameter ‘v’ [-Werror=unused-parameter]
ION Q_DECL_CONSTEXPR inline uint qPopulationCount(long unsigned int v) Q_DECL_N
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:34:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h:38,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_x86.h:38,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:6 ,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:39,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:37,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:39,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:38,
from …/…/api/dcs/inc/qaGobiApiDcs.h:21,
from …/…/api/SWIWWANCMAPI.h:33,
from inc/fwDld_common.h:14,
from inc/fwDld_main.h:14,
from src/fwDld_main.c:12:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypetraits.h: At top level:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypetraits.h:106:48: fatal error: utility: No such file or directory
cc1: all warnings being treated as errors
compilation terminated.
makefile:9: recipe for target ‘obj/hostx86_64/fwDld_main.o’ failed
make: *** [obj/hostx86_64/fwDld_main.o] Error 1
root@ruff:/home/fsmith/sierra/SampleApps/Firmware_Download#

Best REgards
Frank

qmap.h is a pretty generic file name. The one missing from the SDK is probably a completely different file. I believe it must defined struct QmuxIPTable and QmuxIPv6Table for example. None of the proposals do that. But it is most likely related to the QMI muxing feature, just like the qmap.h in the driver. It’s just not the same file.

You can probably get away with a dummy qmap.h file as long as you don’t actually use any of the features it is supposed to provide.