Important: Please read the Qt Code of Conduct -

Building Qt 5.7 on Linux: snprintf_l and sscanf_l not declared

  • I'm trying to build Qt 5.7 with debug symbols on my local machine. Steps I have followed up to now:

    • install Qt using the unified setup
    • also select sources of Qt 5.7 when given the option
    • cd to the sources directory
    • run ./configure -debug -opensource -platform linux-g++ -opengl desktop -nomake examples -nomake tests
    • run make -j 6

    Building starts, but after a few seconds it stops with the following message:

    In file included from tools/qlocale_tools.cpp:42:0:
    tools/qdoublescanprint_p.h: In function ‘int qDoubleSscanf(const char*, locale_t, const char*, double*, int*)’:
    tools/qdoublescanprint_p.h:141:54: error: ‘sscanf_l’ was not declared in this scope
         return sscanf_l(buf, locale, format, d, processed);
    tools/qdoublescanprint_p.h: In function ‘int qDoubleSnprintf(char*, size_t, locale_t, const char*, double)’:
    tools/qdoublescanprint_p.h:145:53: error: ‘snprintf_l’ was not declared in this scope
         return snprintf_l(buf, buflen, locale, format, d);

    I don't know how to solve this, since I believe that function is part of stdlib, which is of course installed on my machine.

  • Hmm googling snprintf_l looks like it's available on Windows and on the Mac, but not on Linux :-( Maybe it's a bug...

  • I'm having the same issue, i'm not able to build despite following this guide and update all dependencies

  • Moderators

    I build Qt from sources regularly and haven't had a care in the world (following the same wiki you posted). Are you sure you have all the dependencies? For example libc-dev?

  • Did you manage to fix this problem?
    I face the exact issue and i cannot find a solution.

Log in to reply