How can I make changes to the effective qmake call?



  • Hi,

    one of the samples shows the Effective make call but I need to change its contents (the contents of the make file...). Specifically I need to pass -std=c++14.

    How is this done? Where the make file?

    Thanks,
    Juan



  • Hi! You can add CONFIG += c++14 to your *.pro file.



  • Ok, I added CONFIG += c++14 to my *.pro file, but now I am getting compiler errors like "/Users/juandent/Qt5.5.1/5.5/clang_64/lib/QtCore.framework/Headers/qstring.h:739: error: no type named 'u16string' in namespace 'std'
    static inline QString fromStdU16String(const std::u16string &s);"
    ~~~~~^
    in code like:

    #if defined(Q_COMPILER_UNICODE_STRINGS) || defined(Q_QDOC)
    static inline QString fromStdU16String(const std::u16string &s);
    inline std::u16string toStdU16String() const;
    static inline QString fromStdU32String(const std::u32string &s);
    inline std::u32string toStdU32String() const;
    #endif

    ?? This does not occur if I use CONFIG += c++11

    Thanks,
    Juan



  • What is strange about this error is that even if I #include<string>, the compiler complains that u16string does not exist in std namespace...

    which is false!!
    Is something corrupt??

    Any ideas?
    Juan


  • Lifetime Qt Champion

    Hi,

    Are you running OS X ? What version of Qt ?



  • Hi,

    Qt Creator version 3.5.1 (open source) based on Qt 5.5.1 (Clang 6.0 (Apple), 64 bit).

    OS X version 10.11.2

    Thanks,
    Juan


  • Lifetime Qt Champion

    Also Qt 5.5.1 ? Or 5.6.0 Beta ?

    Can you show your .pro file ?



  • Hi,

    Yes Qt 5.5.1

    The .pro is:

    TEMPLATE = app
    INCLUDEPATH += .

    HEADERS = bookdelegate.h bookwindow.h initdb.h
    RESOURCES = books.qrc
    SOURCES = bookdelegate.cpp main.cpp bookwindow.cpp
    FORMS = bookwindow.ui

    CONFIG += c11
    CONFIG += c++14

    QT += sql widgets widgets

    target.path = $$[QT_INSTALL_EXAMPLES]/sql/books
    INSTALLS += target

    wince {
    CONFIG(debug, debug|release):sqlPlugins.files = $$QT_BUILD_TREE/plugins/sqldrivers/d4.dll
    CONFIG(release, debug|release):sqlPlugins.files = $$QT_BUILD_TREE/plugins/sqldrivers/
    [^d]4.dll
    sqlPlugins.path = sqldrivers
    DEPLOYMENT += sqlPlugins
    }


  • Lifetime Qt Champion

    It should be CONFIG += c++11

    Also check that you are using the clang mkspec



  • Hi,

    Yes with c++11 it works but I want to use c++14, and I know Xcode 7.2 supports c++14 ... since under the covers the compiler is doing the compiling, why can't I instruct it to work in C++ 14 mode?

    What do you mean by clang mkspec? Where do I find that?

    Thank you very much for your help so far!!
    Juan


  • Lifetime Qt Champion

    Go to Qt Creator's preferences and take a look at the Kit, you should see there the mkspec. If empty look at the Qt Version used for the Kit but AFAIK, it should be clang by default.



  • what about using C++14? -- is it not possible?

    Juan


  • Lifetime Qt Champion

    It should be yes. Usually only "CONFIG += c++14" should be enough.



  • Qt mkspec is empty but Qtversion is Qt 5.5.1 clang 64bit

    ?? Still have the problem

    Thanks



  • Hi Qt Champ!

    I found the answer finally!!

    The solution is: IN ORDER to use C++14 you must also enable C++11, like so:

    CONFIG+= c++11
    CONFIG+= c++14

    That solves all the problems!!

    Thanks for the help!

    Juan


  • Lifetime Qt Champion

    Great !

    Then please mark the thread as solved using the "Topic Tool" button so other forum users may know a solution has been found :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.