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. Declaration of function and use it
Forum Updated to NodeBB v4.3 + New Features

Declaration of function and use it

Scheduled Pinned Locked Moved Unsolved General and Desktop
93 Posts 4 Posters 60.5k 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.
  • mrjjM mrjj

    @gauravsharma0190 said:

    CannyThreshold

    this function ?
    CannyThreshold
    that you call with
    CannyThreshold(0, 0);

    and you do include the .h file where its defined?

    G Offline
    G Offline
    gauravsharma0190
    wrote on last edited by
    #44

    @mrjj
    it is defined as

    ///ontrack.h///
    
    #ifndef __ONTRACK_h
    #define __ONTRACK_h
    void cannyThresold(int,void*);
    #endif
    ......
    
    ///ontrack.cpp
    #include "ontrack.h"
    #include<opencv2/opencv.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/core/core.hpp>
    void CannyThreshold(int, void*)
    {
    /// Reduce noise with a kernel 3x3
    blur( src_gray, detected_edges, Size(3,3) );
    /// Canny detector
    Canny( detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_size );
    
    /// Using Canny's output as a mask, we display our result
    dst = Scalar::all(0);
    
    src.copyTo( dst, detected_edges);
    imshow( window_name, dst );
    }
    

    .....
    thus i include ontrack.h in mainwindow.cpp code.
    but error occurs.
    Why??
    i can't understand.

    jsulmJ 1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #45

      I dont understand either.
      Seems fine.
      try to define a test function
      as in
      ontrack.h
      void mytest();
      and call that from main.

      If that is still not known, it means that mainwinow do not really include ontrack.h for some reason.

      1 Reply Last reply
      0
      • G gauravsharma0190

        @mrjj
        it is defined as

        ///ontrack.h///
        
        #ifndef __ONTRACK_h
        #define __ONTRACK_h
        void cannyThresold(int,void*);
        #endif
        ......
        
        ///ontrack.cpp
        #include "ontrack.h"
        #include<opencv2/opencv.hpp>
        #include <opencv2/highgui/highgui.hpp>
        #include <opencv2/core/core.hpp>
        void CannyThreshold(int, void*)
        {
        /// Reduce noise with a kernel 3x3
        blur( src_gray, detected_edges, Size(3,3) );
        /// Canny detector
        Canny( detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_size );
        
        /// Using Canny's output as a mask, we display our result
        dst = Scalar::all(0);
        
        src.copyTo( dst, detected_edges);
        imshow( window_name, dst );
        }
        

        .....
        thus i include ontrack.h in mainwindow.cpp code.
        but error occurs.
        Why??
        i can't understand.

        jsulmJ Online
        jsulmJ Online
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #46

        @gauravsharma0190 You call it like this CannyThreshold(0, 0); and in ontrack.cpp it is defined like void CannyThreshold(int, void*). But in ontrack.h it is void cannyThresold(int,void*); please fix the name of the function.

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        mrjjM G 2 Replies Last reply
        1
        • jsulmJ jsulm

          @gauravsharma0190 You call it like this CannyThreshold(0, 0); and in ontrack.cpp it is defined like void CannyThreshold(int, void*). But in ontrack.h it is void cannyThresold(int,void*); please fix the name of the function.

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #47

          @jsulm
          heh Good spotted. completely missed "old" :)

          G 1 Reply Last reply
          1
          • mrjjM mrjj

            @jsulm
            heh Good spotted. completely missed "old" :)

            G Offline
            G Offline
            gauravsharma0190
            wrote on last edited by
            #48

            @mrjj
            I fix canny as Canny in .h file
            but again error occurs.

            1 Reply Last reply
            0
            • jsulmJ jsulm

              @gauravsharma0190 You call it like this CannyThreshold(0, 0); and in ontrack.cpp it is defined like void CannyThreshold(int, void*). But in ontrack.h it is void cannyThresold(int,void*); please fix the name of the function.

              G Offline
              G Offline
              gauravsharma0190
              wrote on last edited by
              #49

              @jsulm
              Hey i fixed it .But again error.

              jsulmJ 1 Reply Last reply
              0
              • G gauravsharma0190

                @jsulm
                Hey i fixed it .But again error.

                jsulmJ Online
                jsulmJ Online
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #50

                @gauravsharma0190 "But again error" - why don't you say what error you get now?

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                G 1 Reply Last reply
                2
                • jsulmJ jsulm

                  @gauravsharma0190 "But again error" - why don't you say what error you get now?

                  G Offline
                  G Offline
                  gauravsharma0190
                  wrote on last edited by
                  #51

                  @jsulm
                  yes it tells undefined reference to 'CannyThresold(int,void*)'.
                  collect2:error ld returned 1 exit status.

                  jsulmJ 1 Reply Last reply
                  0
                  • G gauravsharma0190

                    @jsulm
                    yes it tells undefined reference to 'CannyThresold(int,void*)'.
                    collect2:error ld returned 1 exit status.

                    jsulmJ Online
                    jsulmJ Online
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #52

                    @gauravsharma0190 Is ontrack.cpp part of your project and is it built?
                    "undefined reference to 'CannyThresold(int,void*)" - means linker cannot find CannyThresold(int,void*)

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    G 1 Reply Last reply
                    1
                    • jsulmJ jsulm

                      @gauravsharma0190 Is ontrack.cpp part of your project and is it built?
                      "undefined reference to 'CannyThresold(int,void*)" - means linker cannot find CannyThresold(int,void*)

                      G Offline
                      G Offline
                      gauravsharma0190
                      wrote on last edited by
                      #53

                      @jsulm
                      Actually i put .h and .cpp file in my qt project folder.

                      jsulmJ 1 Reply Last reply
                      0
                      • G gauravsharma0190

                        @jsulm
                        Actually i put .h and .cpp file in my qt project folder.

                        jsulmJ Online
                        jsulmJ Online
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #54

                        @gauravsharma0190 But did you add them to your project?
                        They should be in the PRO file, like:

                        SOURCES += main.cpp\
                                mainwindow.cpp\
                                ontrack.cpp
                        
                        HEADERS  += mainwindow.h\
                                ontrack.h
                        

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        G 1 Reply Last reply
                        1
                        • jsulmJ jsulm

                          @gauravsharma0190 But did you add them to your project?
                          They should be in the PRO file, like:

                          SOURCES += main.cpp\
                                  mainwindow.cpp\
                                  ontrack.cpp
                          
                          HEADERS  += mainwindow.h\
                                  ontrack.h
                          
                          G Offline
                          G Offline
                          gauravsharma0190
                          wrote on last edited by
                          #55

                          @jsulm
                          i added it but gives error as
                          parse error onTrack.cpp
                          Makefile error 3

                          jsulmJ 1 Reply Last reply
                          0
                          • G gauravsharma0190

                            @jsulm
                            i added it but gives error as
                            parse error onTrack.cpp
                            Makefile error 3

                            jsulmJ Online
                            jsulmJ Online
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #56

                            @gauravsharma0190 After changing PRO file you need to rerun qmake (right-click on the project in QtCreator and then "Run qmake". Then do a rebuild.

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            G 1 Reply Last reply
                            0
                            • jsulmJ jsulm

                              @gauravsharma0190 After changing PRO file you need to rerun qmake (right-click on the project in QtCreator and then "Run qmake". Then do a rebuild.

                              G Offline
                              G Offline
                              gauravsharma0190
                              wrote on last edited by
                              #57

                              @jsulm
                              I done it
                              Now gives many error regarding onTrack.cpp file.

                              jsulmJ 1 Reply Last reply
                              0
                              • G gauravsharma0190

                                @jsulm
                                I done it
                                Now gives many error regarding onTrack.cpp file.

                                jsulmJ Online
                                jsulmJ Online
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by
                                #58

                                @gauravsharma0190 Well, I guess you have many issues there...

                                https://forum.qt.io/topic/113070/qt-code-of-conduct

                                G 3 Replies Last reply
                                0
                                • jsulmJ jsulm

                                  @gauravsharma0190 Well, I guess you have many issues there...

                                  G Offline
                                  G Offline
                                  gauravsharma0190
                                  wrote on last edited by
                                  #59

                                  @jsulm
                                  Yeap.
                                  are they function's issuses or anything.
                                  I can't undersatnd everything is all right so Why all these issuses are there.
                                  I will send you these issue.

                                  G 1 Reply Last reply
                                  0
                                  • G gauravsharma0190

                                    @jsulm
                                    Yeap.
                                    are they function's issuses or anything.
                                    I can't undersatnd everything is all right so Why all these issuses are there.
                                    I will send you these issue.

                                    G Offline
                                    G Offline
                                    gauravsharma0190
                                    wrote on last edited by
                                    #60

                                    @gauravsharma0190
                                    Here are all the errors
                                    ...

                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:9: error: 'blur' was not declared in this scope
                                         blur(gray, edge, Size(3,3));
                                                                   ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:6: error: 'Mat' does not name a type
                                     Mat image, gray, edge, cedge;
                                     ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:7: error: 'void CannyThreshold(int, void*)' was declared 'extern' and later 'static' [-fpermissive]
                                       static void CannyThreshold(int, void*)
                                                                            ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:-1: In function 'void CannyThreshold(int, void*)':
                                    
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:9: error: 'edge' was not declared in this scope
                                         blur(gray, edge, Size(3,3));
                                                    ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:9: error: 'edge' was not declared in this scope
                                         blur(gray, edge, Size(3,3));
                                                    ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:9: error: 'blur' was not declared in this scope
                                         blur(gray, edge, Size(3,3));
                                                                   ^
                                    
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:12: error: 'Canny' was not declared in this scope
                                         Canny(edge, edge, edgeThresh, edgeThresh*3, 3);
                                                                                      ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:13: error: 'cedge' was not declared in this scope
                                         cedge = Scalar::all(0);
                                         ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:15: error: 'src' was not declared in this scope
                                         src.copyTo(cedge, edge);
                                         ^
                                    /home/pi/Desktop/qt/Desktop1/onTrackBall.cpp:16: error: 'imshow' was not declared in this scope
                                         imshow("Edge map", cedge);
                                                                 ^
                                    /usr/local/include/opencv2/highgui/highgui.hpp:78: note:   'cv::imshow'
                                     CV_EXPORTS_W void imshow(const string& winname, InputArray mat);
                                    
                                    1 Reply Last reply
                                    0
                                    • jsulmJ jsulm

                                      @gauravsharma0190 Well, I guess you have many issues there...

                                      G Offline
                                      G Offline
                                      gauravsharma0190
                                      wrote on last edited by
                                      #61
                                      This post is deleted!
                                      1 Reply Last reply
                                      0
                                      • jsulmJ jsulm

                                        @gauravsharma0190 Well, I guess you have many issues there...

                                        G Offline
                                        G Offline
                                        gauravsharma0190
                                        wrote on last edited by
                                        #62

                                        @jsulm
                                        Hey i have posted the error
                                        i can't undersatnd why i am getting these error.
                                        everything is all right.

                                        jsulmJ 1 Reply Last reply
                                        0
                                        • G gauravsharma0190

                                          @jsulm
                                          Hey i have posted the error
                                          i can't undersatnd why i am getting these error.
                                          everything is all right.

                                          jsulmJ Online
                                          jsulmJ Online
                                          jsulm
                                          Lifetime Qt Champion
                                          wrote on last edited by jsulm
                                          #63

                                          @gauravsharma0190 Nothing is all right with this code.
                                          "was not declared in this scope" - you have to check where are those declared or why they are not declared (blur, edge, Mat,...). For example:

                                          cedge = Scalar::all(0);
                                          

                                          where is cedge declared? You're trying to access a variable which was not declared.

                                          This one says that you first declared the function extern and later static. Why? Since it is just a function it neither has to be static nor extern!

                                          error: 'void CannyThreshold(int, void*)' was declared 'extern' and later 'static' [-fpermissive]
                                             static void CannyThreshold(int, void*)
                                          

                                          You really have to fix your code! And I really don't understand why you think your code is OK although there are really basic issues (not related to Qt at all)!

                                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          G 1 Reply Last reply
                                          1

                                          • Login

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