Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QString Error
Forum Updated to NodeBB v4.3 + New Features

QString Error

Scheduled Pinned Locked Moved Solved General and Desktop
24 Posts 5 Posters 9.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • hskoglundH hskoglund

    Hi, just guessing, but if that line is inside a class declaration (not outside) then you'll get that 108 error, for example:

    class MyClass {
    ...
    QString settingsFile("/boot/settings.json");
    ...
    };
    

    you could try

    class MyClass {
    ...
    QString settingsFile = "/boot/settings.json";
    ...
    };
    
    M Offline
    M Offline
    marvic_39
    wrote on last edited by
    #15

    @hskoglund

    Yes, tried that statement too. Here it's flashing error.

    QString settingsFile = "/neet/one.json";
    
    /home/cpp/cap.h:109: sorry, unimplemented: non-static data member initializers
    
    /home/cpp/cap.h:109: error: in-class initialization of static data member 'str' of non-literal type
    
    1 Reply Last reply
    0
    • RatzzR Offline
      RatzzR Offline
      Ratzz
      wrote on last edited by
      #16

      @hskoglund
      What is your GCC version ? less than 4.7?

      --Alles ist gut.

      M 2 Replies Last reply
      0
      • RatzzR Ratzz

        @hskoglund
        What is your GCC version ? less than 4.7?

        M Offline
        M Offline
        marvic_39
        wrote on last edited by
        #17

        @Ratzz

        gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
        

        I cross compiled Linux, OpenCV, FFmpeg Qt Raspi and many other apps never faced a compiler problems.

        Should this look like compiler version problem?

        RatzzR 1 Reply Last reply
        0
        • M marvic_39

          @Ratzz

          gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
          

          I cross compiled Linux, OpenCV, FFmpeg Qt Raspi and many other apps never faced a compiler problems.

          Should this look like compiler version problem?

          RatzzR Offline
          RatzzR Offline
          Ratzz
          wrote on last edited by Ratzz
          #18

          @marvic_39 said:
          But Non static data member initializers available only for GCC >4.7 . Check this . Check the GCC support docs.

          --Alles ist gut.

          M 1 Reply Last reply
          1
          • RatzzR Ratzz

            @marvic_39 said:
            But Non static data member initializers available only for GCC >4.7 . Check this . Check the GCC support docs.

            M Offline
            M Offline
            marvic_39
            wrote on last edited by
            #19

            @Ratzz

            Thank you, Ok, Will check with updated GCC version greater than 4.7.

            1 Reply Last reply
            0
            • RatzzR Ratzz

              @hskoglund
              What is your GCC version ? less than 4.7?

              M Offline
              M Offline
              marvic_39
              wrote on last edited by
              #20

              @Ratzz

              Installed, Still flashing errors.

              gcc (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04) 4.7.3
              
              108   QString settingsFile("Hello");
              109   QString str="/neet/one.json";
              
              /home/cpp/app.h:108: error: expected identifier before string constant
              /home/cpp/app.h:108: error: expected ',' or '...' before string constant
              
              /home//cpp/app.h:109: sorry, unimplemented: non-static data member initializers
              /home/cpp/app.h:109: error: in-class initialization of static data member 'str' of non-literal type
              

              In QT creator it show this, is this correct.

              Qt Creator 3.5.1 (opensource)
              Based on Qt 5.5.1 (GCC 4.9.1 20140922 (Red Hat 4.9.1-10), 32 bit)

              Built on Oct 13 2015 07:38:32

              RatzzR 1 Reply Last reply
              0
              • M marvic_39

                @Ratzz

                Installed, Still flashing errors.

                gcc (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04) 4.7.3
                
                108   QString settingsFile("Hello");
                109   QString str="/neet/one.json";
                
                /home/cpp/app.h:108: error: expected identifier before string constant
                /home/cpp/app.h:108: error: expected ',' or '...' before string constant
                
                /home//cpp/app.h:109: sorry, unimplemented: non-static data member initializers
                /home/cpp/app.h:109: error: in-class initialization of static data member 'str' of non-literal type
                

                In QT creator it show this, is this correct.

                Qt Creator 3.5.1 (opensource)
                Based on Qt 5.5.1 (GCC 4.9.1 20140922 (Red Hat 4.9.1-10), 32 bit)

                Built on Oct 13 2015 07:38:32

                RatzzR Offline
                RatzzR Offline
                Ratzz
                wrote on last edited by Ratzz
                #21

                @marvic_39
                Are you doing this inside the structure? QString settingsFile("Hello");
                Is the error at line 108 bec of this ?

                --Alles ist gut.

                M 1 Reply Last reply
                0
                • RatzzR Ratzz

                  @marvic_39
                  Are you doing this inside the structure? QString settingsFile("Hello");
                  Is the error at line 108 bec of this ?

                  M Offline
                  M Offline
                  marvic_39
                  wrote on last edited by marvic_39
                  #22

                  @Ratzz

                  I cleaned all GCC versions and activated 4.7
                  Now it's compiled and executed my app.

                  QString settingsFile{"neet/One.json"};
                  

                  Very strange about the brackets () and {}

                  Thank You guys, it's GCC 4.7 made the difference.

                  RatzzR 1 Reply Last reply
                  0
                  • M marvic_39

                    @Ratzz

                    I cleaned all GCC versions and activated 4.7
                    Now it's compiled and executed my app.

                    QString settingsFile{"neet/One.json"};
                    

                    Very strange about the brackets () and {}

                    Thank You guys, it's GCC 4.7 made the difference.

                    RatzzR Offline
                    RatzzR Offline
                    Ratzz
                    wrote on last edited by
                    #23

                    @marvic_39
                    Once your problem is solved please use the Topic Tools button to mark as Solved.
                    Thank you!

                    --Alles ist gut.

                    1 Reply Last reply
                    0
                    • kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by
                      #24

                      Ok. I think I get what your problem was. In all probability C++11 is enabled by default in GCC 4.7 (on your distribution), that is why I asked what compiler and environment you're using. Here is the relevant link:
                      http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
                      That being said, without the non-static data member initializers supported by the compiler you are obliged to initialize the object in your class' constructor and cannot do it in its declaration. Meaning that if you compile the code on another platform and/or compiler that does not have the C++11 standard enabled you'll get similar errors.

                      Read and abide by the Qt Code of Conduct

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved