ngscopeclient - Ultimate acquisition software / protocol decoder / debug tool ? - Page 1
Forum section: electronics / testgear

author: fredo_
author_rank: Regular Contributor
timestamp: September 10, 2024, 10:47:58 pm
content: Hi folks,@sslupsky recentlymade me discoverthe existence ofngscopeclient, a very promising software developed by Andrew Zonenberg :https://www.ngscopeclient.org/As suggestedhere, I'm starting a new topic to discuss about this amazing tool.As you may know I spent quite some time working onSigrok drivers for Siglent SDS HD and Rigol DHO scopes, and I'm currently in contact with Sigrok maintainers to have these two drivers integrated to the next release.So when I heard about ngscopeclient I had to take a look and see what it was capable ofI must say that there is a bit of a learning curve to move from Sigrok/Pulseview to ngscopeclient, but it is an incredibly powerful tool (and I barely scratched the surface) !Well, the leopard cannot change its spots, so I ended up working with Andrew to add support for Rigol DHO and Siglent SDS HD models to ngscopeclientIf this is of any interest, just let me know and I'll see with Andrew if we can make a binary distribution available to you guys.Attached is a screenshot of my DHO804 used to acquire an RS232 test signal on ngscopeclient with associated decoder and eye-pattern visualization.Update with link tongscopeclient Windows InstallerAnd on popular demand, here is a link to thengscopeclient Windows installer (zip password is 'ngscopeclient')./!\ Please be aware that you need aVulkan compatible GPU/video cardto run ngoscopeclient. /!\09/21/2024 Update (dc26783)Siglent SDS: Added support for Logic Analyzer.09/17/2024 Update (d2a1a2f)Siglent SDS: Support for SDS800X HD, SDS1000X HD, SDS2000X Plus, SDS2000X HD, SDS3000X HD, SDS5000X, SDS6000A/L/Pro, SDS7000A modelsRigol DHO: Support for DHO800/900, DHO1000 and DHO4000.Other hardware: seengscopeclient sitefor acomplete list of supported hardware.Best,Fredo.

author: thm_w
author_rank: Super Contributor
timestamp: September 11, 2024, 09:18:32 pm
content: Looks like it supports a bunch of high end scopes, surprised it hasn't been mentioned here before. I guess partially due to setup difficulty.Found a semi-demo video of someone using it:

author: fredo_
author_rank: Regular Contributor
timestamp: September 11, 2024, 09:28:42 pm
content: Yes, for now you have to build it from the source code, which obviously is a barrier for a lot of people !But if you are interested, I can check with Andrew if he is OK with me sharing a Windows installer here.ngscopeclient is evolving very fast, there are commits on the codebase almost everyday, and the Pull Requests I made where merged within a day or two each time, Andrew is very reactive and helpful.For a more complete video, check his YT channel (at 20'30) :

author: shabaz
author_rank: Frequent Contributor
timestamp: September 12, 2024, 12:59:33 am
content: It looks interesting, so I gave it a shot on Windows.I thought I'd try connecting my (ancient non-programmable) PSU which I 'upgraded' with USBTMC based on Rigol PSU programming manual.Unfortunately, further down in the ngscopeclient user manual, it appears USBTMC is currently not supported on Windows.(I often use USBTMC instead of LAN; I'll have to give it a try with LAN some other day, or try building on Linux).

author: qmichl
author_rank: Newbie
timestamp: September 12, 2024, 06:49:04 am
content: I packaged it for openSuSE Tumbleweed herehttps://build.opensuse.org/package/show/home:frank_kunz/ngscopeclient, it works for me on a MSO5000, no warranty.

author: NE666
author_rank: Frequent Contributor
timestamp: September 12, 2024, 07:48:37 am
content: Quote from: fredo_ on September 10, 2024, 10:47:58 pmFirstly, yes. It does seem a potentially interesting alternative to what is currently available for some hardware. And certainly many hours of work went into it thus far, so credit where credit is due.However, I think it would lend more credibility and indeed traction to the project were the maintainer(s) to invest their time in adding build actions to their repo such that appropriate binary assets were automatically generated for release branches (and maybe a 'nightly'), rather than in (or you, or others) making ad-hoc binary distributions.

author: fredo_
author_rank: Regular Contributor
timestamp: September 12, 2024, 08:26:52 am
content: Quote from: NE666 on September 12, 2024, 07:48:37 amYes, absolutely right, it just me rushing it a bit, but packaging is intensively discussed by developers involved in the project on Discord.

author: egonotto
author_rank: Super Contributor
timestamp: September 12, 2024, 02:32:24 pm
content: Hello,I wanted to install it in Windows, but the last step doesn't work.In GettingStarted step 7 they say:"All following steps are to be done in a UCRT64 shell.7.Build manually:cd scopehal-appsmkdir buildcd buildcmake ..make -j4"This works well up to and including cmake .But the command make -j4 does not work.At first it did not find make. I installed it with pacman -S make. Now the error message appears:$ make -j4make: *** No targets specified and no makefile found. Stop.Has anyone translated it for Windows yet?Does anyone have any idea what I should do?Best regardsegonotto

author: macaba
author_rank: Regular Contributor
timestamp: September 12, 2024, 02:34:55 pm
content: Trycd buildcmake --build . -j4

author: fredo_
author_rank: Regular Contributor
timestamp: September 12, 2024, 02:37:01 pm
content: Quote from: egonotto on September 12, 2024, 02:32:24 pmYes I have a working Windows binary and installer, I'm just waiting for Andrew's approval, out of courtesy, before sharing it here.Quote from: egonotto on September 12, 2024, 02:32:24 pmYou have to use ninja (generated install doc is not up-to-date, but source doc is :https://github.com/ngscopeclient/scopehal-docs/blob/32aa18b0b511e0a32a1d27e461dfec637a4fb264/section-ng-gettingstarted.tex#L334).

author: egonotto
author_rank: Super Contributor
timestamp: September 12, 2024, 04:16:29 pm
content: Quote from: macaba on September 12, 2024, 02:34:55 pmHello,Thanks it compiles now, but it's taking quite a while.Best regardsegonottoPS: Now it's ready. But my SDS3000X HD is not recognized correctly via LAN.ERROR: Unknown scope type

author: fredo_
author_rank: Regular Contributor
timestamp: September 12, 2024, 05:04:07 pm
content: Quote from: egonotto on September 12, 2024, 04:16:29 pmSorry I should have told you that egonotto, I did not add SDS3000X HD to the Siglent driver yet, it's next on my TODO list.I'll let you know when it's done and merged to ngscopeclient repo.

author: egonotto
author_rank: Super Contributor
timestamp: September 12, 2024, 05:17:51 pm
content: Quote from: fredo_ on September 12, 2024, 05:04:07 pmHallo,Thank you, no problem. I just wanted to see if the program would run and then saw that Siglent was included and entered the IP of my SDS3000X HD.Best regardsegonotto

author: shabaz
author_rank: Frequent Contributor
timestamp: September 12, 2024, 10:12:43 pm
content: Quote from: egonotto on September 12, 2024, 02:32:24 pmSorry I just saw this now : (As someone mentioned earlier, using ninja resolved it. i.e. this worked for me (instead of the make command):Code:cmake -G "Ninja" ..ninjaAlso, for me it didn't initially run because I was missing the following in the PATH user variables, and it couldn't find some DLLs:Code:C:\msys64\ucrt64\binOnce I added that to PATH, then it ran. But currently USBTMC isn't supported on Windows, so I'm going to find that quite limiting (I appreciate that it may not be an issue at all for most).

author: egonotto
author_rank: Super Contributor
timestamp: September 12, 2024, 10:42:48 pm
content: Hello,thanks to all, the suggestion from macaba“Trycd buildcmake --build . -j4”worked without any problems.I was able to call the generated program without any problems.Best regardsegonotto

author: Antonio90
author_rank: Frequent Contributor
timestamp: September 13, 2024, 11:55:46 pm
content: Hello, this might be a stupid question but, how do you estabilish a connection with the scope? I'm selecting the Siglent driver, and typing the LAN IP:5025, to no avail.The console says something about the scope answering "welcome to SDS824X HD" after asking for an ID.

author: fredo_
author_rank: Regular Contributor
timestamp: September 14, 2024, 07:44:28 am
content: Hi Antonio90 ,Quote from: Antonio90 on September 13, 2024, 11:55:46 pmI think SDS800X HD support as not yet been merged to ngscopeclient (it is in scopehal git repo, but the ngscopeclient sub-module does not point to the latest commit).You need to either wait for Andrew to update the dependency or to manually checkout master branch of scopehal repo.

author: azonenberg
author_rank: Contributor
timestamp: September 14, 2024, 05:04:43 pm
content: Hi everyone, lead developer hereWe have CI builds on GitHub that upload some install artifacts (seehttps://github.com/ngscopeclient/scopehal-apps/actions/runs/10834892744) but I think the MSI build is currently broken, we are actively working on that plus CPack-based deb/rpm packages in order to have things easier to get started for a v0.1 release.There are a handful of really annoying dependencies that make packaging difficult which we're working on ripping out, things will get a lot easier once that's taken care of.I and most of the core devs are on Linux so that's where the most dev/testing happens. We would love more Windows contributors to help improve platform support there (and MacOS); as of now there's a handful of users on each platform but not a lot in the way of steady ongoing contributions.For USBTMC, we use the Linux kernel driver on Linux but I don't know what the status of "standard" drivers for USBTMC on Windows are. If your device has an Ethernet interface, you can use it from Windows no problem. Most of my focus has been on higher end gear used professionally in industry, which tends to all have Ethernet, so the lack of USBTMC Windows support is an annoyance but not our top priority (PRs will be very welcome if somebody wants to fix it for us, though!)(Also, as of this post I've updated the scopehal dependencyhttps://github.com/ngscopeclient/scopehal-apps/commit/6c264547b4ef492d9a3bb12ae8ec519384394292so all of fredzo's stuff should be pulled in)

author: azonenberg
author_rank: Contributor
timestamp: September 14, 2024, 05:07:57 pm
content: And yes, documentation has lagged a bit behind the state of code. We're a small project with limited developer resources and writing good docs takes time.If anybody is interested in helping out, let me know

author: azonenberg
author_rank: Contributor
timestamp: September 14, 2024, 05:13:52 pm
content: Quote from: Antonio90 on September 13, 2024, 11:55:46 pmI wonder if there's some weird setting on the scope to make it provide a full shell or something rather than just a raw SCPI command interface?If you connect to the scope on the SCPI port, it should not send anything immediately.If you then send "*IDN?" it should reply with something like "Siglent Technologies,SDL1020X-E,SDL13GCX6R0651,1.1.1.21R2".If it sends any kind of command prompt or welcome banner or something that will confuse the driver as it's not supposed to be there. There might be a setting to turn this on/off, not sure.

author: Kean
author_rank: Unknown
timestamp: September 14, 2024, 06:44:10 pm
content: Quote from: Antonio90 on September 13, 2024, 11:55:46 pmAre you sure you didn't accidentally type port 5024 instead of 5025?According to the programming manual, port 5024 is the telnet port and would answer with "Welcome to ..." plus a ">>" prompt, then accept interactive SCPI commands.As expected, port 5025 is meant for program control via socket without the prompts.

author: Antonio90
author_rank: Frequent Contributor
timestamp: September 14, 2024, 07:34:53 pm
content: Quote from: azonenberg on September 14, 2024, 05:13:52 pmHello Andrew. Thank you very much for your help, and for developping the software. I got to know it through the Thunderscope project, which I have been following for a while, and it is truly impressive.The oscilloscope sends a welcome banner when a Telnet connection is started with Putty, through port 5024. Before any command is sent, it prints:"Welcome to the SCPI instrument 'Siglent SDS824X HD'"I managed to get something like "Unknown serial number SDS824XHD" or similar, while alternating connections between Ngscopeclient and Putty, but haven't been able to reproduce it.Now I only get this (image attached)I'm already installing Linux, I want to try the AD2 too.

author: azonenberg
author_rank: Contributor
timestamp: September 14, 2024, 07:38:01 pm
content: Quote from: Antonio90 on September 14, 2024, 07:34:53 pmYeah you want to use 5025 which is the port for un-formatted raw SCPI remote control rather than telnet.

author: Antonio90
author_rank: Frequent Contributor
timestamp: September 14, 2024, 07:53:38 pm
content: Then the terminal just returns "ERROR: Unknown scope type"

author: Antonio90
author_rank: Frequent Contributor
timestamp: September 14, 2024, 08:40:29 pm
content: Quote from: Kean on September 14, 2024, 06:44:10 pmApologies, I got your post lost in between answering. You are right, I initially tried both and neither worked. I just assumed "Unknown trigger type" was a more promising error than "Unknown scope type" and kept trying there.

author: Antonio90
author_rank: Frequent Contributor
timestamp: September 14, 2024, 08:42:34 pm
content: Quote from: fredo_ on September 14, 2024, 07:44:28 amThis might be the case. Unfortunately I don't really know what I'm doing, just following documentation step by step, so I'll wait.

author: azonenberg
author_rank: Contributor
timestamp: September 14, 2024, 09:28:56 pm
content: Quote from: Antonio90 on September 14, 2024, 07:53:38 pmTry again with the latest version on git, should have the 800 series support merged?

author: Antonio90
author_rank: Frequent Contributor
timestamp: September 14, 2024, 10:38:42 pm
content: Quote from: azonenberg on September 14, 2024, 09:28:56 pmThanks! Compiling now.EDIT: Compiled and working (on Windows still). Thank you very much Andrew and @fredo_! Will test more tomorrow, it's already 1:45 AM here, and I need sleep. The "filter" section with the block programming interface is just genius BTW, really impressive piece of software.

author: fredo_
author_rank: Regular Contributor
timestamp: September 15, 2024, 12:02:24 am
content: Quote from: Antonio90 on September 14, 2024, 10:38:42 pmSame here, time to go to bed!

author: Furna
author_rank: Frequent Contributor
timestamp: September 15, 2024, 05:06:28 pm
content: Quote from: egonotto on September 12, 2024, 04:16:29 pmThe "-j4" tells the compiler (ninja) to use 4 cores on your PC.It is more than probable that your PC has more than 4 cores.ninja by default uses all your available cores.In short run "cmake --build ." without the "j" switch.Please note that cmake in turn runs ninja => just run "ninja" as fredo_ suggested and advised in the yet unpublished doc mentioned by azonenbergQuote from: egonotto on September 12, 2024, 04:16:29 pmQuote from: azonenberg on September 14, 2024, 09:28:56 pmYup it is merged and seems to work.I just cloned and compiled from scratch and Siglent SDS824X HD is recognized ... I didn't try yet to really take a capture.Wil let you know when I had it tested better.

author: skander36
author_rank: Frequent Contributor
timestamp: September 15, 2024, 05:17:17 pm
content: Windows version has some sudden closes. Still a lot of work. Maybe the Linux version is more stable.Anyway a notable and unique approach!

author: azonenberg
author_rank: Contributor
timestamp: September 15, 2024, 08:59:59 pm
content: Quote from: skander36 on September 15, 2024, 05:17:17 pmWe're very interested in crash reports as people try on different setups. If you can attach a debugger and get a stack trace of where it died, we can see if that sheds any light on the situation.

author: Furna
author_rank: Frequent Contributor
timestamp: September 15, 2024, 09:14:00 pm
content: Quote from: azonenberg on September 15, 2024, 08:59:59 pmazonenberg, do you have a preferred debugger and/or na example for a debugger command?I guess something available with MSYS2 (gdb?) can work?

author: skander36
author_rank: Frequent Contributor
timestamp: September 15, 2024, 10:19:19 pm
content: Quote from: azonenberg on September 15, 2024, 08:59:59 pmMaybe I will find some time to setup a debugger, as I don't had to deal until now with MSYS (I'm not a programmer). Usually the message that remains in console are errors of communication with the scopes as in pics attached.Sometime R&S scope (RTB2002) get stuck while the others works.

author: fredo_
author_rank: Regular Contributor
timestamp: September 17, 2024, 10:59:20 pm
content: Update with link tongscopeclient Windows InstallerAnd on popular demand, here is a link to thengscopeclient Windows installer (zip password is 'ngscopeclient')./!\ Please be aware that you need aVulkan compatible GPU/video cardto run ngoscopeclient. /!\09/17/2024 Update (d2a1a2f)Siglent SDS: Support for SDS800X HD, SDS1000X HD, SDS2000X Plus, SDS2000X HD, SDS3000X HD, SDS5000X, SDS6000A/L/Pro, SDS7000A modelsRigol DHO: Support for DHO800/900, DHO1000 and DHO4000.Other hardware: seengscopeclient sitefor acomplete list of supported hardware.Best,Fredo.

author: skander36
author_rank: Frequent Contributor
timestamp: September 19, 2024, 02:34:05 pm
content: Hi@fredo_For Windows installer ngscopeclient msi package, I get this error on launch. An invalid path to fonts. It is repairable by users but you may want to correct this in source installer.

author: fredo_
author_rank: Regular Contributor
timestamp: September 19, 2024, 04:26:51 pm
content: Oops, that's bad !Thanks for the heads up, let me check that.Well I was not able to reproduce the problem unless I have a <userdir>\AppData\Roaming\ngscopeclient\preferences.yml from a previous install that points to wrong font paths.@skander36 can check if the error message was not due to a preferences.yml file existing before your installation (which would be the case if you previously tried your own build) ?

author: skander36
author_rank: Frequent Contributor
timestamp: September 19, 2024, 05:32:41 pm
content: Hi, I don't have drive D in my computer. Also /Home/fborry is not from me.Attached is preferences.yml.What else can I check?My build is launching without problems.

author: fredo_
author_rank: Regular Contributor
timestamp: September 19, 2024, 06:20:01 pm
content: Quote from: skander36 on September 19, 2024, 05:32:41 pmYeah that's the path of the source file (see "imgui__draw.cpp, line 2583" in your screenshot) on my build environnement (this is a debug build), not to be confused with the path to look the fonts for.Maybe try and remove or rename your preferences.yml file and launch the installed ngscopeclient, it should fix the problem.

author: skander36
author_rank: Frequent Contributor
timestamp: September 19, 2024, 06:55:20 pm
content: Quote from: fredo_ on September 19, 2024, 06:20:01 pmOk, that was. Removing preferences.yml has allowed the installed version to launch. Now both instances can be launched.Thank you!

author: fredo_
author_rank: Regular Contributor
timestamp: September 20, 2024, 10:50:45 pm
content: Updatedngscopeclient Windows InstallerHere is an updated version ofngscopeclient Windows installer (zip password is 'ngscopeclient')including LA support for Siglent SDS HD scopes.09/21/2024 Update (dc26783)Siglent SDS: Added support for Logic Analyzer.

author: Furna
author_rank: Frequent Contributor
timestamp: September 21, 2024, 12:02:49 pm
content: Quote from: fredo_ on September 20, 2024, 10:50:45 pmWorks for SDS824X HD analog channels; unfortunately I have no LA to play with.

author: voltsandjolts
author_rank: Unknown
timestamp: September 21, 2024, 07:11:49 pm
content: The Rigol DHO1000 series have quite a rudimentary FFT implementation, which is a great shame as the frontend is quite good. It would be fantastic if ngscopeclient could implement FFT using raw data from scope and provide normal/peak/average spectrum - the features I miss the most on DHO1K.

author: azonenberg
author_rank: Contributor
timestamp: September 22, 2024, 04:13:08 am
content: We can do FFTs on input from any supported scope.The FFT filter outputs only the FFT of the current input, but there are separate filters for peak holding and exponential moving average that can be applied to the output spectrum which in combination should give the behavior you want, I think.

author: azonenberg
author_rank: Contributor
timestamp: September 22, 2024, 04:15:08 am
content: Quote from: skander36 on September 19, 2024, 06:55:20 pmYep you got hit byhttps://github.com/ngscopeclient/scopehal-apps/issues/707. We don't have a root cause but there's a fairly straightforward workaround we can do to at least avoid a crash when it happens. But there's a million other things I'm juggling and this one hasn't got to the top of the stack.

author: Bidi533
author_rank: Newbie
timestamp: September 22, 2024, 11:29:04 am
content: Wow! Thank you very much for sharing this here and providing the pre-complied versions. I tried it quickly with my own DHO804 and it worked! Definitely keeping an eye out for future development of this project.

author: MD1071
author_rank: Newbie
timestamp: October 02, 2024, 04:56:49 pm
content: hey, software looks amazing. thanks for thr windows installer. I used the windows installed and got it running, however get issues when trying to add my rigol DS1054 scope over LAN. I'm able to ping thr scopes IP and it's good, I can get IDN? using python pyvisa too so seems like connection with my PC is good. However when I try to add it using ngscopeclient, I get three bad IDN warnings and then it terminatesI used the windows installer and it's the ngscopeclient 0.1-dev+dc26783 [DEBUG BUILD]amI using the wrong version or something?the path I used is scope IP : 5555manual says rigol port is 5555Edit: I tried with my Teledyne LeCroy scope via vicp and its successful. So could this be a Rigol or LAN issues?

author: fredo_
author_rank: Regular Contributor
timestamp: October 02, 2024, 11:03:22 pm
content: Hi MD1071,Thank you for testing and for the feedback :-)Yes for Rigol you should be good with lan transport and ip:5555 for Path.But the log message seems to indicate that there is no network connection with the scope :-/Can you try and launch ngscopeclient with the following command line ?:ngscopeclient.exe --debug --trace SCPISocketTransport --trace RigolOscilloscope

author: MD1071
author_rank: Newbie
timestamp: October 03, 2024, 07:59:02 pm
content: yeah sure I can try that and let you know

author: eTobey
author_rank: Super Contributor
timestamp: November 06, 2024, 10:17:12 am
content: Wow, that looks awesome. I just found out, that my graphics card is just below the minimum requirement.If this tool would implement some features of the DSView software, id be amazed, and would even pay money for it. Especially multistage triggering and the measurement features (And of course, the triggerposition aligned with the time scale).I have build some projects in the past, but since that is quite a task, i would not consider doing it again, unless it had the properties said above ;-).

author: fredo_
author_rank: Regular Contributor
timestamp: November 06, 2024, 02:02:39 pm
content: Quote from: eTobey on November 06, 2024, 10:17:12 amWell no need to build it from scratch, just join the dev team on Discord!:https://discord.com/channels/613131135903596547/776941750291267595Everyone is very helpful and reactive there, so I'm sure you can contribute on DSlabs driver enhancements!

author: nctnico
author_rank: Super Contributor
timestamp: April 23, 2025, 12:20:21 pm
content: Just want to add that I just tried ngoscopeclient to decode 1Gbit ethernet and it works quite well in combination with my Lecroy 7300A (after I had added support which wasn't difficult given the similarity to oscilloscopes which where already supported). I'm impressed! This is definitely a good piece of software to have around.

author: Evi
author_rank: Regular Contributor
timestamp: April 23, 2025, 03:23:31 pm
content: DHO804

author: ignilux
author_rank: Unknown
timestamp: May 10, 2025, 11:41:07 am
content: I built this about 6 months ago without issues, but ended up uninstalling it due to lack of free time to tinker with such things. Saw it mentioned by Reps in his last Patreon video, so I thought I'd try it again. However, I seem to be unable to get past a deprecation warning in vulcan_hpp that throws an error due to -Werror=cpp:Code:[ 13%] Building CXX object lib/scopehal/CMakeFiles/scopehal.dir/cmake_pch.hxx.gchIn file included from /usr/include/vulkan/vulkan_hpp_macros.hpp:35,from /usr/include/vulkan/vulkan.hpp:11,from /usr/include/vulkan/vulkan_raii.hpp:11,from /var/tmp/makepkg/scopehal-apps-git/src/build/lib/scopehal/CMakeFiles/scopehal.dir/cmake_pch.hxx:6,from <command-line>:/usr/include/c++/15.1.1/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp]46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros"| ^~~~~~~cc1plus: all warnings being treated as errorsmake: *** [lib/scopehal/CMakeFiles/scopehal.dir/build.make:80: lib/scopehal/CMakeFiles/scopehal.dir/cmake_pch.hxx.gch] Error 1make: *** [CMakeFiles/Makefile2:1428: lib/scopehal/CMakeFiles/scopehal.dir/all] Error 2make: *** [Makefile:166: all] Error 2I've tried adding -DCMAKE_CXX_STANDARD=20 and -DCMAKE_CXX_STANDARD_REQUIRED=TRUE to force C++20 per this vulcan_hppissue, but it appears to be using C++17 anyway. Also tried building with -Wno-error=cpp and/or -Wno-error, but that also fails. Any ideas?Edit:Building on Linux with Cmake 4.0.2 and GCC 15.1.1

author: Furna
author_rank: Frequent Contributor
timestamp: May 10, 2025, 03:04:36 pm
content: Quote from: ignilux on May 10, 2025, 11:41:07 amI had the same error using GCC-15.1.0 ... it seems ngoscopeclient is explicitely avoiding C++20 since it is still targetting some platforms which only support C++17I think GCC-15 doesn't support anymore C++17 and defaults to C++20You can do one of the following:- You can install an older GCC if your Linux distro permits and pass -DCMAKE_CXX_COMPILER=/bin/compiler/path- Edit the code and make it compatible with C++20- Use an alternative compiler i.e. CLANG and pass -DCMAKE_CXX_COMPILER=/bin/compiler/pathIndeed I am using MSYS2 on Windows and I am not very familiar with multiple GCC versions on the same installation (if it is possible at all).So I tried sucesfully with CLANG version 20.1.3 (I obviously had to install all the lib dependencies for the MSYS CLANG environment.Best

author: ignilux
author_rank: Unknown
timestamp: May 10, 2025, 06:01:14 pm
content: Thanks for the suggestion, but it also fails with clang 19.1.7 for the same reason.

author: ignilux
author_rank: Unknown
timestamp: May 10, 2025, 06:26:45 pm
content: Aaand GCC 14.2.1 makes it past the original issue, but mold starts throwing linker errors for undefined symbols towards the end of the build. Starting when linking "curvetrace".

author: Furna
author_rank: Frequent Contributor
timestamp: May 10, 2025, 06:38:54 pm
content: Quote from: ignilux on May 10, 2025, 06:26:45 pmUndefined symbols smell as libraries version mismatch ... what Linux distro and what version?

author: ignilux
author_rank: Unknown
timestamp: May 10, 2025, 07:56:59 pm
content: Archlinux with Linux 6.14.5. Fully up to date.gcc14 and gcc14-libs both 14.2.1. Mold 2.39.0.Edit: Versions for all dependencies:Code:ffts-git: r800.b22d839b61c-1glew: 2.2.0-7glfw: 3.4-2gtkmm3: 3.24.10-1libsigc++: 2.12.2-1libsigc++-3.0: 3.6.0-1openmp: 19.1.7-1yaml-cpp: 0.8.0-2catch2: 3.8.1-1cmake: 4.0.2-1git: 2.49.0-1vulkan-headers: 1:1.4.313.0-1liblxi: r224.b14716b-1vulkan-icd-loader: 1.4.313.0-1linux-gpib-dkms: 4.3.6-4shaderc: 2025.2-2spirv-tools: 1:1.4.313.0-1

author: nctnico
author_rank: Super Contributor
timestamp: May 10, 2025, 08:01:48 pm
content: Note this line:cc1plus: all warnings being treated as errorsThe easiest way it is probably turning off the option -Werror=cpp

author: ignilux
author_rank: Unknown
timestamp: May 10, 2025, 08:11:08 pm
content: Quote from: nctnico on May 10, 2025, 08:01:48 pmYes, as mentioned I tried passing both "-Wno-error" and "-Wno-error=cpp" to cmake. Seemed to be ignored.

author: Furna
author_rank: Frequent Contributor
timestamp: May 10, 2025, 08:48:19 pm
content: Quote from: ignilux on May 10, 2025, 08:11:08 pmLine 65 of the CMakeLists.txt add "-Wno-error=cpp" ...Code:- add_compile_options(-Werror -Wno-error=deprecated-declarations -Wno-error=unused-parameter -Wno-error=unused-variable -Wno-error=unused-result -Wno-error=shadow)+ add_compile_options(-Werror -Wno-error=deprecated-declarations -Wno-error=unused-parameter -Wno-error=unused-variable -Wno-error=unused-result -Wno-error=shadow -Wno-error=cpp)I just compiled it sucessfully with GCC.Sorry if I didn't spot this before.

author: nctnico
author_rank: Super Contributor
timestamp: May 10, 2025, 08:52:55 pm
content: No problemI had to hack around a bit to get it to compile on a slightly older Linux distribution. In my case the compiler didn't like ;; (double semicolons) at line endings but that was easy to edit out. Treating all warnings as errors might not be a really good idea for code which is supposed to be portable due to the wide variety of libraries out there.

author: ignilux
author_rank: Unknown
timestamp: May 11, 2025, 03:33:57 pm
content: Aha, I guess I understand cmakeeven lessthan I thought I did... And I didn't think I understood much!One line of `sed` to modify the add_compile_options() and GCC 15 built successfully. Thanks, Furna!