Giter Site home page Giter Site logo

Comments (13)

tomneda avatar tomneda commented on July 26, 2024

@andimik Hello Andi, yes I followed also your contribution to Abracadbra and Qt-DAB (thanks Jan for that, I learnt a lot with his work). Thanks for trying out my project.

I tried to make my build complete warning and (of course) error free. For my developing system (Xubuntu 22.04 LTE) I already made many adaptions, at least using the latest Qt5 (5.15.2).

I needed some code adaption for building my AppImages with a native Ubuntu 20.04 which uses the "build-in" Qt 5.12.8.

I think in a native Ubuntu 22.04 there is a Qt version used between 5.15.2 and 5.12.8 which only should cause some deprecation warnings but not such a failure like you have.

This failure is strange because the mention method interval(Qt::Axis x) is really a overwritten virtual function of the Qwt library. It is first defined in class QwtRasterData (file qwt_raster_data.h:98).

Do you really build with Qwt 6.2.0? https://sourceforge.net/projects/qwt/files/qwt/6.2.0/qwt-6.2.0.zip/download.

There was formerly a Qwt version check in the cmake process but it worked not reliable on my machine, so I removed it.

Nevertheless, I will try to setup a virtual machine with a fresh Ubuntu 22.04 LTS and see whats happen there. Hope I can do this in the later evening today.

from dabstar.

old-dab avatar old-dab commented on July 26, 2024

Try to remove libqwt-qt5-dev. It is an older version.

from dabstar.

andimik avatar andimik commented on July 26, 2024

Well I tried both, using all (Ubuntu 22.04 default) Qt and qwt packages I am using for qt-dab. And then installed 6.2.0.

The error keeps the same. But I have no idea, if the 6.2.0 interferes with the installed one or overwrites it. (I am not a programmer).

Try to remove libqwt-qt5-dev. It is an older version.

I will test it.

from dabstar.

tomneda avatar tomneda commented on July 26, 2024

@andimik : I could reproduce the issue. It really seems that the Qwt libqwt-qt5-dev from the Ubuntu 22.04-repo is an older Version 6.1.4.

I will try the next days if this version is good to work with DABstar and if yes, making it compatibel with QWT 6.2.0 and this 6.1.4.

Meanwhile: I have not tried it out but it could work to deinstall libqwt-qt5-dev (as @old-dab proposed) with
sudo apt remove libqwt-qt5-dev
(hope this is correct, I am currently not on Linux)
and hopefully the new version of Qwt 6.2.0 is found afterwards if you build and installed that too.

Would be interesting for me: Have you tried out the AppImage (https://github.com/tomneda/DABstar/releases) I provided whether it works on your side?

Thanks for your feedback.

from dabstar.

andimik avatar andimik commented on July 26, 2024

Well, this solved the initial issue, but I still couldn't complete the compilation.

As far as I remember, the problem was in

#include <qwt.h>

Will test the newer commit in the weekend.

from dabstar.

andimik avatar andimik commented on July 26, 2024

The AppImage works under 64bit, but wanted to compile it also on my 32bit Raspberry.

from dabstar.

tomneda avatar tomneda commented on July 26, 2024

@andimik Please avoid trying out commits on my development branch, there are seen also as backup for me and could not work (I wrote this also into that commit that it is not working yet). If something works well (or better) I will shiftet it to the main branch and inform you here.

It is very strange: Ubuntu 22.04 LTS provides the Qt 5.15.3. This is newer than the newest commercial-free installable version 5.15.2 which I use on my Xubuntu 22.04. And with this 5.15.3 I got many deprecation warning between Qwt 6.1.4 and Qt which are not easily to handle.

Regarding the "override" problem I only removed that keyword because that base class provides no virtual method to be overrided. So I am not sure if the method is really called finally. For my first run I got segmentations vaults but on an unexpected place. I still have to dig deeper into that.

Regarding Raspberry: I never tried to build my repo on other than my machine (i7-6700K). On my, meanwhile older 6th gen. CPU, it works quite fine and also fluently in debug builds. But I am not sure if it works on a (likely) less powerfull Raspi.
Jan seems taking much more effort into Qt-DAB for testing this also on such devices and optimize there. Additionally I implemented things which takes more CPU time, especially in the OFDM decoder where I collect statistic data or doing (several selectable) Soft-Bit-Decision to increase the sensitivy in worse receiving conditions.

But If you want doing the effort on Rasp it would interessting for if it works :-)

from dabstar.

andimik avatar andimik commented on July 26, 2024

I now achieved to build it successfully using e137c49

Have deleted all files in the build directory and used ccmake first using the following parameters:

 AIRSPY                           ON
 CMAKE_BUILD_TYPE
 CMAKE_INSTALL_PREFIX             /usr/local/bin
 CONV_IN_FILES                    ON
 DATA_STREAMER                    OFF
 FDK_AAC                          OFF
 HACKRF                           OFF
 LIMESDR                          OFF
 LSB_RELEASE                      /usr/bin/lsb_release
 PLUTO                            OFF
 PTHREADS                         /usr/lib/x86_64-linux-gnu/libpthread.a
 Qt5Core_DIR                      /usr/lib/x86_64-linux-gnu/cmake/Qt5Core
 Qt5Gui_DIR                       /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui
 Qt5Network_DIR                   /usr/lib/x86_64-linux-gnu/cmake/Qt5Network
 Qt5Sql_DIR                       /usr/lib/x86_64-linux-gnu/cmake/Qt5Sql
 Qt5Widgets_DIR                   /usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets
 Qt5Xml_DIR                       /usr/lib/x86_64-linux-gnu/cmake/Qt5Xml
 RTLSDR_LINUX                     ON
 RTLSDR_WIN                       OFF
 RTL_TCP                          ON
 SDRPLAY_V2                       OFF
 SDRPLAY_V3                       OFF
 UHD                              OFF
 USE_FFT                          FFTW3
 USE_HBF                          OFF
 USE_LTO                          OFF
 VITERBI_NEON                     OFF
 VITERBI_SSE                      ON

But as soon as I want to build it for HackRF, then there is a compiler error and it fails:

$ make
[  1%] Automatic MOC and UIC for target dabstar_devices
[  1%] Built target dabstar_devices_autogen
Consolidate compiler generated dependencies of target dabstar_devices
[  2%] Building CXX object src/devices/CMakeFiles/dabstar_devices.dir/dabstar_devices_autogen/mocs_compilation.cpp.o
In file included from /home/andreas/apps/DABstar/build/src/devices/dabstar_devices_autogen/HPAZXAQTMY/moc_hackrf-handler.cpp:10,
                 from /home/andreas/apps/DABstar/build/src/devices/dabstar_devices_autogen/mocs_compilation.cpp:11:
/home/andreas/apps/DABstar/build/src/devices/dabstar_devices_autogen/HPAZXAQTMY/../../../../../src/devices/hackrf-handler/hackrf-handler.h:82:56: error: use of enum ‘hackrf_board_rev’ without previous declaration
   82 | using pfn_hackrf_board_rev_name = const char* (*)(enum hackrf_board_rev board_rev);
      |                                                        ^~~~~~~~~~~~~~~~
/home/andreas/apps/DABstar/build/src/devices/dabstar_devices_autogen/HPAZXAQTMY/../../../../../src/devices/hackrf-handler/hackrf-handler.h:153:3: error: ‘hackrf_board_rev’ does not name a type; did you mean ‘hackrf_board_id’?
  153 |   hackrf_board_rev mRevNo = BOARD_REV_UNDETECTED;
      |   ^~~~~~~~~~~~~~~~
      |   hackrf_board_id
make[2]: *** [src/devices/CMakeFiles/dabstar_devices.dir/build.make:76: src/devices/CMakeFiles/dabstar_devices.dir/dabstar_devices_autogen/mocs_compilation.cpp.o] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:255: src/devices/CMakeFiles/dabstar_devices.dir/all] Fehler 2
make: *** [Makefile:136: all] Fehler 2

from dabstar.

tomneda avatar tomneda commented on July 26, 2024

@andimik yes, this is some kind the same problem like with Qwt: I try to use the newest driver for that things. And I own also an HackRf which I want using the newest feature and refactored the HackRf-Driver of Qt-DAB a lot. (I needed a ppm shift which was not working)

Like Qwt 6.2.0 I also build the HackRf driver for myself and uses this description here: https://hackrf.readthedocs.io/en/latest/installing_hackrf_software.html for building and installing.

I copied the relevant content here:

Acquire the source for the HackRF tools from either a release archive or git: git clone https://github.com/mossmann/hackrf.git

Once you have the source downloaded, the host tools can be built as follows:

cd hackrf/host
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

But maybe you need to deinstall your current HackRf driver because I am not shure if you suffer from the (likely) same problem like with Qwt 6.2.0. Can you please try the above steps? And if it works maybe the same procedure works with Qwt 6.2.0, too?

BTW1: Are the AppImage not working already for your needs? You only need compiling yourself if you want modifying things in my opinion? 😁

BTW2: If the V2.3.0 builds better than the V2.4.0 I would wonder. The main difference are made in the SDRplay device handler, nothing with Qwt.

from dabstar.

andimik avatar andimik commented on July 26, 2024

Thanks for your hints. Indeed, when I have removed all hackrf packages and compile the latest driver and then compile DABstar, then there is no single compilation warning!

Very very good job, dear Thomas!

from dabstar.

tomneda avatar tomneda commented on July 26, 2024

@andimik : I could build a version which seems to work with Qwt 6.1.4. But as it seems that you could manage using Qwt 6.2.0 I would prefer not to add these changes to my mainline as they make the code more unclean and I suppress warnings which I want not to suppress generally.

I make an extra branch for that adaption:
https://github.com/tomneda/DABstar/tree/qwt_6.1.4_adaption
If you still want to try out, feel free.

from dabstar.

tomneda avatar tomneda commented on July 26, 2024

@andimik : forgot to say (in German): "Danke für die Blumen" for that:

...
Very very good job, dear Thomas!

💐 😁

But back to English, maybe others could be interested in this also:

I try to build DABstar with native Qt and Qwt and I succeeded. The newer Qwt 6.2.0 is still working if wanted.
The only disadvantages are the deprecate-warnings as the Qwt 6.1.4 does not really fit to the Qt 5.15.3 (but without side effects). I suppress these warnings on the release build but not on a debug build. So, a normal cmake and make should not show such an warning.

I improved the description for the installing process for Ubuntu in the README.

Look at the newest mainline commit if you want trying this out.

I removed the former side branch "qwt_6.1.4_adaption" as it was a bit faulty and is not more necessary.

Regarding #13 (comment) I did not looked yet why NEON for the Raspi is not building.

from dabstar.

andimik avatar andimik commented on July 26, 2024

Have pulled latest commit. Building works without any error, and making the installation it ok, too, but then I cannot start the program due to qwt error ...

_resources.cpp.o
[100%] Linking CXX executable dabstar
[100%] Built target dabstar
andreas@E535:~/apps/DABstar/build$ sudo make install
[  1%] Automatic MOC and UIC for target dabstar_devices
[  1%] Built target dabstar_devices_autogen
Consolidate compiler generated dependencies of target dabstar_devices
[ 15%] Built target dabstar_devices
[ 16%] Automatic MOC and UIC for target dabstar_fft
[ 16%] Built target dabstar_fft_autogen
Consolidate compiler generated dependencies of target dabstar_fft
[ 22%] Built target dabstar_fft
[ 23%] Automatic MOC and UIC for target dabstar
[ 23%] Built target dabstar_autogen
Consolidate compiler generated dependencies of target dabstar
[100%] Built target dabstar
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/dabstar
-- Set runtime path of "/usr/local/bin/dabstar" to ""
andreas@E535:~/apps/DABstar/build$ cd
andreas@E535:~$ dabstar 
dabstar: error while loading shared libraries: libqwt.so.6.2: cannot open shared object file: No such file or directory

I've again checked the path:

andreas@E535:~/apps/qwt-6.2.0$ sudo make install | grep libqwt
/usr/lib/qt5/bin/qmake -install qinstall -exe ../lib/libqwt.so.6.2.0 /usr/local/qwt-6.2.0/lib/libqwt.so.6.2.0
strip --strip-unneeded /usr/local/qwt-6.2.0/lib/libqwt.so.6.2.0
ln -f -s libqwt.so.6.2.0 /usr/local/qwt-6.2.0/lib/libqwt.so
ln -f -s libqwt.so.6.2.0 /usr/local/qwt-6.2.0/lib/libqwt.so.6
ln -f -s libqwt.so.6.2.0 /usr/local/qwt-6.2.0/lib/libqwt.so.6.2

It's /usr/local/qwt-6.2.0/lib/libqwt.so.6.2, then I copied it into another folder: sudo cp /usr/local/qwt-6.2.0/lib/libqwt.so.6.2 /usr/lib and it worked then.

from dabstar.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.