-
Notifications
You must be signed in to change notification settings - Fork 202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make fails with 'GOOGLE_CHECK' not declared in this scope #1550
Comments
Damn, I thought we might escape this for a bit longer. This is a bug/feature due to moving to Protobuf 3.7 and above (it worked with 3.6). I'd spotted it already as Homebrew have dropped Protobuf 3.6 support. FWIW, this is a C++ issue, rather than anything really to do with Protobuf. There are some improvements to make it better here: But they don't quite fix it unfortunately: How's your C++? Given you can easily recreate it, you might have more luck at fixing it than me trying to round trip via Travis to test code changes.
Thanks for the heads up, that's expected, hence why we've turned off the warning. They've simultaneously switched auto_ptr to unique_ptr, so if we want to support new and old compilers, we have to stick with the old one and mute the message.
I thought we'd fixed this, which version of OLA are you compiling against? In terms of more generally, if you can install an older Protobuf, it should all compile fine and you can do your Python work as you need to. |
I have a small amount of C++ expirience, but it's minimal at best - I'm more comfortable with java (although at uni, i will be learning C++ properly next semester) I only noticed this, when compiling folowing the git tutorial on https://www.openlighting.org/ola/linuxinstall/#Git - I also tried installing with ola-git on the AUR, both yielded the same result - this was yesterday 28th, at about 9pm ACDT (Australian Central Daylight TIme) And i am running the x86_64 Linux 4.19.30-1-MANJARO kernel I can, however follow instructions, so if you wish to give me some I can follow them (however i am doing this as a side project, and University assignments are picking up |
Okay Da-Boom, well first thing, can you install an older version of Protobuf easily or is that not possible in Arch? That should get you going at least. |
Ok.. so i have managed to downgrade(now i have to be careful when running pacman to update though lol, because it immediately realized that i'm running older versions and wanted to update) I am now running protobuf-3.6.1.3-1 and python-protobuf-3.6.1.3-1 I will go ahead and compile.. Still getting the same random errors during ./configure I have attached the entire output of make - it is just a standard log file, you can view it in a text editor - it should have recorded all the deprecated warnings, and maybe you can make sense of them, considering i am an amateur when it comes to C++ and i don't know much about the internals and codebase of this software... I am going to continue with make check and install the software now! But, i would like to say that in my opinion this should only be regarded as a workaround and should not be considered as a solution in any right |
I'm not entirely familiar with the iner workings of OLA, C++ standards, nor protobuf, but Googling about seems to suggest that this functionality is now a core part of C++11? In which case, this hack (on top of #1535) seems to get OLA building for me on FreeBSD 12.0 with protobuf 3.7.1. However, I can't help but think it might already be handled with protobuf's FieldDescriptor::InternalTypeOnceInit() ?? |
Hi all, Compiling on Arch Linux. Master compiled after applying @stewiem2000 patch and deleting the
|
#1558 fixes that specific error for me. However, it fails later in the compilation with:
which is a bit strange since that is generated code .... |
Found the piece of code that the compiler now throws up upon: https://github.com/OpenLightingProject/ola/blob/master/protoc/CppFileGenerator.cpp#L226 |
This branch works for me: https://github.com/OpenLightingProject/ola/compare/master...kripton:protobufFixes?expand=1 |
Thanks for the heads up and further work @kripton !
Yeah unfortunately although it's generated code, it's generated with an ancient version of the protoc generator which we modified, but I never managed to find out which version our modifications were based on, so easily modifying a new version is pretty tough, hence these continued issues.
Thanks for that, care to open a pull request so we can look at getting them merged in?
Does make check pass too? It would be good to do it the other way round too, i.e. modify via ola_dmxconsole and confirm the web page reflects. It would also be excellent if you wouldn't mind doing equivalent tests with the python versions in python/examples just to confirm they all still play ball. Then I can test your PR in an older version for backwards compatibility. |
I also investigated this yesterday. Actually, the binary
Sure, I'll create a proper PR later today. Is it okay to base on your code as I did + add my changes? I didn't know if your changes were proper or rather some quick hack to get it working.
dmxconsole works both ways, so I can also write the values and the web interface reflects the changes.
Currently working on the Python part but since I'm not used to writing Python code, it might take a bit.
That would be great. I don't have access to protobuf older than 3.10.1. |
Good news, I tested |
Ah yes sorry, my mistake on terminology. There is some stuff here:
They weren't particularly thorough, just based on trying to get it to compile initially, but only via Travis so not particularly well tested anyway.
Excellent, that all looks very promising.
I'm sure mine is older than that.
Given it should all only be running on the same machine (see the localhost comments here): I'd suggest we could require them to use the same protobuf version on both client and server (worst case scenario is going to be say running Python talking to the C++ OLAd, and I think getting them to match isn't a huge ask).
That's all great news! |
Reopening just until we get this into 0.10 for 0.10.8. |
Can be closed, fixed by #1630 :) |
Indeed, closing! |
Thanks for fixing this issue. Just installed directly from Arch Linux's AUR (ola-git package) with no issues! |
That's great to hear @dj-foxxy . Hopefully it works too! 😆 We've discovered a small issue ( #1630 (comment) ) around a minor difference with how we've fixed it in the 0.10 branch, so if you fancy retesting in a few days when we've got that sorted and merged back into master would be great thanks. |
@peternewman, I update about once a week so will at least test building. However, given the current pandemic, we're not getting many live bookings. Next gig tentatively rescheduled for April next year. |
I was compiling for arch linux, when i got the following python failure during make:
i am running the latest protobuf currently in the arch repos, and this error appears regardless of running in python2.7 or python3 (i tried 2.7 in a virtualenv) but it seems to have failed...
now i am not sure what the difference is between GOOGLE_DCHECK_LT and GOOGLE_THREAD_LOCAL, but it seems to be suggesting that we use that instead.
Now i have no idea if this is an arch only issue, but i would rather test on my PC, before moving to my raspberry pi with a cap touch screen. (I'm gonna be messing with the APIS and combining it with PYGAME (and if i can work it out, a custom web server)
I have also noticed a few other items that the compiler seems to have skipped right over, like a deprecated function:
protoc/CppGenerator.cpp:57:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
also something to do with random during ./configure
Now i dont pretend to know anything about these APIs I just thought I would point them out
The text was updated successfully, but these errors were encountered: