Compiler says function not a member, not replicated on local machine.

freezerohmatic's Avatar

freezerohmatic

29 Mar, 2019 05:43 AM

Having this issues where the compiler says a function is a not a member, see https://ci.appveyor.com/project/Freezerohmatic/qgroundcontrol/builds/23443027 Local build is fine (using windows) I've also gone back to old builds that passed and recompile them and this error now comes up.

  1. 1 Posted by freezerohmatic on 29 Mar, 2019 05:54 AM

    freezerohmatic's Avatar

    By local I mean a windows 10 using qt 5.7.1 using msvc2015. I've change the yml file to compile to 5.7.1 instead of 5.9 but it still shows the same result. Linux version compiles with no issues.

  2. Support Staff 2 Posted by Ilya Finkelshte... on 29 Mar, 2019 05:41 PM

    Ilya Finkelshteyn's Avatar

    Compared your last good build and its failed re-build logs and see this difference (see attached picture). Does it ring any bell? Do you know how to revert this to previous behavior and see if it is an actual root cause?

  3. 3 Posted by freezerohmatic on 30 Mar, 2019 07:57 AM

    freezerohmatic's Avatar
  4. 4 Posted by freezerohmatic on 30 Mar, 2019 08:14 AM

    freezerohmatic's Avatar

    That untagged is what branch its being pulled from, kinda odd that its not being displayed but I wouldn't think it would cause that issue

  5. 5 Posted by freezerohmatic on 30 Mar, 2019 10:20 AM

    freezerohmatic's Avatar

    And no, I don't know how to revert this behaviour

  6. 6 Posted by freezerohmatic on 30 Mar, 2019 10:45 AM

    freezerohmatic's Avatar

    This is the command that displays that message,

    $$system(git --git-dir $$PWD/.git --work-tree $$PWD describe --always --tags)
    GIT_VERSION = $${GIT_DESCRIBE}
    VERSION = $$replace(GIT_DESCRIBE, -.*, "")
    VERSION = $$replace(VERSION, "v", "")
    VERSION = $$section(VERSION, ".", 0, 3)
    message(Version is $${VERSION})

  7. 7 Posted by freezerohmatic on 30 Mar, 2019 10:50 AM

    freezerohmatic's Avatar

    The current build doesn't show that issue but they still have this odd problem with VideoReceiver.cc

    ..\src\VideoStreaming\VideoReceiver.cc(399): error C2039: '_startAudio': is not a member of 'VideoReceiver'

    It is clearly declared and again locally no issue and the linux compile has no issue...
    I've looked at the file in a binary editor to see if there are hidden characters and I can't find anything

  8. Support Staff 8 Posted by Owen McDonnell on 30 Mar, 2019 05:00 PM

    Owen McDonnell's Avatar

    The last problem you mentioned seems to trace back to this commit
    Not sure your reason for changing the path to gstreamer but it looks like it results in this part of your qmake config not running.
    This can be seen in your build log here

  9. 9 Posted by freezerohmatic on 31 Mar, 2019 04:14 AM

    freezerohmatic's Avatar

    Yep that'll do it -_-.... It would also explain the difference between the local compile and veyor compile....

    I'll see myself out for not spotting that one.....

  10. 10 Posted by freezerohmatic on 31 Mar, 2019 09:07 AM

    freezerohmatic's Avatar

    So the reason why gstreamer was changed to D is that it is installed on my PC in D, I've added the following to that file to fix that issue. Thx again for pointing that out.

    if(contains($HOMEDRIVE,"D:") || contains($HOMEDRIVE,"d:")){
            GST_ROOT = d:/gstreamer/1.0/x86
        }
        else{
            GST_ROOT = c:/gstreamer/1.0/x86
        }

  11. Support Staff 11 Posted by Owen McDonnell on 31 Mar, 2019 05:26 PM

    Owen McDonnell's Avatar

    No problem.

    But what about the initial problem that seemed to be related to tagging?

  12. 12 Posted by freezerohmatic on 01 Apr, 2019 12:39 AM

    freezerohmatic's Avatar

    No, the tagging wasn't causing issues... well it shouldn't. I believe that's happening on old builds because I merged two branches. When I was trying to figure out why my new compilers where failing, my debugging steps led me to test old successful compiles and see if they failed. After spending 2-3 days trying to figure out what was going on, I was grasping at straws by this point. It let me to an incorrect conclusion.

    That tagging issue is still very weird since you can see the output clearly showing/accessing the correct branch. I now get success builds on new commits so I'm not going to cry over old commits not compiling, especially since they don't have any of my modified code in them.

    Going back to gstream, this code, as you can see, has been forked and modified. There is clearly a #endif or #ifdef that is not in the right place and is causing an imbalance in { and } somewhere. Not having gstreamer installed in the right place or at all, should not cause the build to fail.

    The above solution for me to temporary until I figure out a better way to check for the gstream install.

    Again thank you for all your effort and help... This is actually my first time setting something like this up. Now I have to figure out how to do this for Apple devices and Android.

  13. Support Staff 13 Posted by Owen McDonnell on 01 Apr, 2019 05:29 AM

    Owen McDonnell's Avatar

    Ok, not crying over old commits not compiling sounds good to me! : )

  14. 14 Posted by freezerohmatic on 01 Apr, 2019 06:51 AM

    freezerohmatic's Avatar

    I'm going to close this, since this is now solved.

  15. freezerohmatic closed this discussion on 01 Apr, 2019 06:51 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac