GNU Radio on CentOS missing QT Blocks - gnuradio

I was trying to follow through with GNU Radio Tutorial 2, but I wasn't able to find any of the QT blocks in the library. The tutorial wants me to use QT GUI Time Sink, but it and many similar blocks are missing from my library.
What the tutorial says my search should return.
My search, following the tutorial.
Searching for the specific block.
The version yum installed for me is 3.7.11. I received no errors during installation.
I even tried porting in the tutorial's finished code, but the block was marked as a Missing Block.
Tutorial 2's GUI Representation.
How do I incorporate these blocks in the library?

I'm not familiar with CentOS, but based on your description, the GNU Radio package you installed was compiled without QT support. You will have to find a different package or compile GNU Radio yourself.
Also note that GNU Radio 3.7.11 is a very old version, from 2017. Therefore another reason to install a better package, with a current version, is to get new blocks and bug fixes from the past three years.

Related

Modifying UHD code to work with GNU Radio

I need to modify the UHD code and then need to make that code work with gnuradio-companion. For this, I built UHD from source and made the required modifications.
The next step would have been to build GNU Radio by source. But the installation steps mentioned in the tutorial do not seem to take UHD into account here. Also, the change in UHD is not being detected in an already installed version of GNU radio.
How do I make GNU Radio work with the modified UHD code?
you need to uninstall your currently installed GNU Radio, your currently installed UHD (make doubly sure you've removed both), then you need to install your self-built UHD, then build and install GNU Radio. Make sure not to accidentally install your operating system's UHD again!
You cannot make a GNU Radio that was built with a different version
of UHD work with your version; you need to built it.

Can a library that uses CMake also be built with SCons?

I want to use KDL (Kinematics and Dynamics Library) in robot control box. But robot control box uses SCons as their build system while KDL uses CMake.
It turned out that the control box doesn't have CMake installed. Should I install CMake in the control box? Or write SCons file for compiling KDL?
====================================================
My question is ambiguous. Sorry for that. And unfortunately, I cannot show the link of Control Box, it's not public. Here is link of KDL installation manual.
http://www.orocos.org/kdl/installation-manual
Let me make it more clear.
Forget all of previous question above and all about Control box, KDL. Let's say that you want to use one library. But the library can be built using CMake according to installation manual. Your PC doesn't have CMake installed but it has SCons, and unfortunately you should not install CMake on your PC.
If you can only use SCons, what can you do?
I know this situation is not usual, I want to know your opinion.
To answer your initial question: Yes, you should always try to install CMake, if that is a build requirement for you library and if you need to build that library from the sources.
To answer your later question: Replacing or rewriting the build system scripts is a major effort and not advisable. In general there is no script to convert build-systems. Such script might help to make the manual transformation. If you have a look at LLVM's effort to replace Autotools by CMake or Boost replacing it's own build system by CMake, you find out it takes several people several years and still not everybody is satisfied.
Often you don't need to build the library yourself. Either there are already built packages from the project directly of from your distribution (Debian etc. packages) or third party packagers like Mac Ports or NuGet.
In your case KDL provides Debian/Ubuntu packages.
Additional KDL is part of ROS, which is experimental in Homebrew for OS X.

How can I install MPFI library in Windows?

there!
I'd like to execute example program, Surface_reconstruction_points_3.
I think the program needs additionally 3rd library, MPFI.
So I downloaded the library from http://mpfi.gforge.inria.fr/.
And I unzipped it at proper folder and linked it to the system path.
After configurating the example program using cmake-gui,
I found some error message, 'Could NOT find MPFI (missing: MPFI_LIBRARIES)'.
How can I install MPFI library in Window using visual studio 2008?
Since MPFI is a GNU library, it is completely supported on Windows.
CGAL provides this third-party libraries inside its installation, but Windows has its own replacement.
I installed this correctly with Visual Studio, but you need to uncheck those third-party libraries so CGAL won't mess with the own windows replacements.
Maybe doing this kind of installation isn't working well for all the sample codes inside the installation, but it works fine for development. I used CGAL without those third-libraries for Voronoi and 2D and 3D triangulation and it works fine.
For a clean installation, delete all you installed previously, make sure the new installation isn't messing with the bad previous installation.
EDIT:
About not using those optional libraries for Windows, I just received a similar mail through the CGAL mailing list and these could be the steps for newer versions of CGAL (>4.2):
You have to comment 3 lines in the CMake machinery:
In CGAL-4.1/CMakeList.txt you have to comment:
#list (INSERT CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES 0 GMP MPFR)
#hide_variable(CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES)
In CGAL-4.1/cmake/modules/UseCGAL.cmake you have to comment:
#use_essential_libs()
On the other hand, you can search on internet for precompiled versions of MPFI. For instance, you can find precompiled GMP, MPFR and MPFI for Windows on http://vegas.loria.fr/rs/ .

how to build g++

I'm currently trying to get g++ working, and looking at http://gcc.gnu.org/install/build.html, I can't seem to find where it says how "to perform a 3-stage bootstrap of the compiler". Where would I find this information?
(I'm on a mac, in case that matters.)
After running configure, you do make bootstrap
You cannot bootstrap GCC without an already-functioning compiler on your platform:
From the prerequisites page:
ISO C90 compiler
Necessary to bootstrap GCC, although versions of GCC prior to 3.4 also allow bootstrapping with a traditional (K&R) C compiler.
And to preempt your next question, you also need a functioning compiler (usually GCC) in order to build Clang+LLVM.
It might be possible to do what you're trying so hard to do, by cross-compiling GCC from some other platform (see this section of the documentation). But I imagine this is not for the feint of heart, and you'd be far, far better off simply updating your copy of Mac OS X to the latest version with Xcode support.
From that link:
For a native build, the default configuration is to perform a 3-stage bootstrap of the compiler when `make' is invoked.
It seems to me that if your configuration isn't tweaked, it should do it out of the box. Just type make.
More specifically, you have to download the source code, and follow the instructions in that whole tutorial in order to build.
A side note - I am finding it hard to believe that there is no easy way to get GCC on an OSX box without having the installation media. That sounds really annoying :)
Edit:
If you are simply trying to write C++ on OSX, you could install one of many other IDEs. If you are lucky, they may come with their own compiler. Here is a list of alternatives to XCode:
http://alternativeto.net/desktop/xcode/?profile=mac&platform=mac

Setting up an Erlang development environment

I'm interested in looking at Erlang and want to follow the path of least resistance in getting up and running.
At present, I'm planning on installing Erlang R12B-3 and Erlide (Eclipse plugin). This is largely a Google-result-based decision. Initially this will be on a Windows XP system, though I am likely to reproduce the environment on Ubuntu shortly after.
Is there a significantly better choice? Even if it is tied to one platform.
Please share your experiences.
I highly recommend the Erlang mode shipped with the standard Erlang distribution. I've put together a "works out of the box" Emacs configuration which includes:
Syntax highlighting & context-sensitive indentation
Dynamic compilation with on-the-fly error highlighting
Integrated Erlang shell
And more....
You can browse my GitHub repo here:
http://github.com/kevsmith/hl-emacs
I've only done a small bit of coding in Erlang but I found the most useful method was just to write the code in a text editor and have a terminal open ready to build my code as I need to (this was in Linux, but a similar idea would work in Windows, I'm sure).
Your question didn't mention it, but if you're looking for a good book on Erlang, try this one by O'Reilly.
You could also try NetBeans there's a very nice Erlang module available: ErlyBird
Install Erlang: sudo aptitude install erlang
Install a recent JDK: sudo aptitute install sun-java6-jdk
Download and install (the smallest) NetBeans edition (e.g. the PHP one): www.netbeans.org/downloads
download the erlang module ErlyBird: sourceforge.net/projects/erlybird
manually install the modules via NetBeans
ErlyBird features:
syntax checking
syntax highlighting
auto-completion
pretty formatter
occurrences mark
brace matching
indentation
code folding
function navigator
go to declaration
project management
Erlang shell console
I'm using Erlang in a few production systems personally as well at the office. For client side testing, documentation and development I use a MacBook Pro as the OS/platform and TextMate with the Erlang bundle as an editor.
For sever side development and deployment we use RHEL 4.x/5.x in production and for editing I use VIM. Personally, I've got 4 machines (slices on slicehost.com) running Debian using Erlang for a few websites and jobs.
I try to go with the smallest 'engineering environment possible', usually the one with the fewest dependencies from apt or yum.
To add to the Emacs suggestions, I would also recommend that you look at the advantages of distel when running the Emacs erlang-mode.
I've seen answers suggesting TextMate here, so I wanted to add another good Mac OSX tool:
ErlangXCode plugin to XCode.
I've been using this since I started with Erlang and really do like it.
The download link on his blog is broken, here's the real download:
http://github.com/JonGretar/erlangxcode/tree/master
You could also try a virtual server on demand service like this one from CohesiveFT
Select the components you want (e.g. erlangrb12 + yaws + MySQL + erlyweb) and it will build a vm image for you to download or to put onto ec2.
Rolling you own locally is quite straightforward too if you follow the instructions in the pragmatic programmers book Programming Erlang
Just a quick note:
The Erlang "compiling" process described in Ciaran's post (described for Ubuntu 6.10 btw) can be easily skipped using apt command in any Debian based distro:
apt-get install erlang
Do not forget to install these packages if you see it fit:
erlang-doc-html - Erlang HTML document pages
erlang-examples - Some application examples
erlang-manpages - Erlang MAN pages
erlang-mode - editing mode for Emacs
Good Luck!
I like Justin's suggestion, but I'll add to it: this solution is great for learning a language. If you don't rely on something like code-completion, then it forces you to learn the language better. (If you are working with something with a huge API, like Java or Cocoa, then you'll want the code completion, however!)
It's also language-agnostic, and in the case of an interpreted language, particularly one that has an interactive interpreter, you'll probably spend just as much time in the shell/interpreter typing in commands. Even in a large-ish python project, I still work in an editor and 4 or 5 terminal windows.
So, the trick is more about getting an editor which works for you. I'm not about to suggest one, as that's heading towards evangelism!
I just use Scite. Type something and press f5 to see the results.
Just wrote a guide on this on my blog, heres the abridged version:
Part 1: Download what needs to be downloaded.
Download and install the Erlang run-time.
Download and install TextPad.
Download a .syn file for Erlang and place it in the system folder of TextPad. For me, this folder was C:\Program Files\TextPad 5\system. I'm not quite sure who did this syn file (the site is in another language), but they did a good enough job.
Part 2: Set up syntax highlighting.
Open up TextPad. Ensure no files are opened. Go to the 'Configure' menu, and select 'Preferences'. In the preferences window, click 'Document Classes'. There should be a list of currently recognized languages. Click the 'New' button (it is right under the list of languages), and type 'Erlang'. Click apply.
Click the '+' button next to 'Document Classes'. This should expand the list, and Erlang should now be on it. Click Erlang. You should see a list of file extensions associated with Erlang, click 'New', and type '*.erl'.
Now click the '+' button next to 'Erlang' on the left. This should expand a list of several more menus. Click on 'Syntax'. Click the drop down menu and select erlang.syn. If erlang.syn is not there, then the .syn file was not properly placed.
Feel free to edit some other syntax options to customize TextPad to your liking.
Part 3: Compiling from TextPad.
Note: as of 12/05/08 there are severe problems with compiling in textpad. The Erlang shell somehow ignores new compilation when it is done in text pad. This is only useful for checking for errors, when you want to actually run the code, compile it in the Erlang Shell.
In the preferences menu again, click 'tools' on the left.
Click the 'Add' button and select 'Program...'. Navigate to the erl5.6.5\erts-5.6.5\bin\ folder and select erlc.exe. Select and single click the new entry in the list to rename it. Click 'Apply'.
Now click the '+' button next to Tools on the left. Select erlc, or whatever you have named the new tool (I named mine 'Compile Erlang'). The parameters field needs to read '$File', and the initial folder field should read '$FileDir'.
I have had good success with Erlide.
If you use Vim I recommend you Vimerl (http://github.com/jimenezrick/vimerl):
Features
Syntax highlighting
Code indenting
Code folding
Code omni completion
Syntax checking with quickfix support
Code skeletons for the OTP behaviours
Uses configuration from Rebar
Pathogen compatible (http://github.com/tpope/vim-pathogen)
From what i've tried (and are still up to do), a good addition to an erlang dev. environment would be a virtual machine running ubuntu/yaws/erlang. Perhaps Erlyweb (erlang/yaws framework) would be nice checking out too.
Ciaran's posts (this would be the first of his "series") about his erlang install is nice, as he details the steps in setting up the server (and other stuff like xmpp with jabberlang).
Since you're switching to Ubuntu eventually anyways, I highly recommend using erlang-mode for emacs (which comes bundled with the Erlang distribution). It is officially what all the core developers use and what many other developers use because of the many features it offers you.
Installing the Erlang distribution itself should be simple :)