[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] building gnuradio on windows with msvc

From: Don Ward
Subject: Re: [Discuss-gnuradio] building gnuradio on windows with msvc
Date: Sun, 2 Jan 2011 16:38:15 -0500

Josh Blum wrote:

On 01/02/2011 08:21 AM, Moeller wrote:
Hi Josh, isn't it easier with the GNU-Toolchain like Mingw (Windows
native) or Cygwin (POSIX/Windows API)? For Cygwin there are lots of
prebuilt packages and others build easily with ./configure ; make.
Some need to be patched. Once I managed to get gnuradio running in
Cygwin (X-windows) with GRC and did some live operations (waterfall,
spectrum) with the soundcard. Unfortunately the latest SVN versions
have some Boost and other errors and don't compile any more. The
USRP2-drivers with raw socket interfaces didn't work, but with UHD
and UDP-sockets this might be easier to realize. I don't have much
experience with Mingw, but this gives you Windows native executables
and is still very GNU-compatible. Usually I prefer Cygwin, but this
gives you a lot of trouble when combining executables/DLLs from the
Cygwin and native world (the exception handlers and runtime libs are
not compatible).

Well, lets assume you have to compile gnuradio stuff on windows. Its
going to be painful. The question is, were should it hurt?

If you put the burden on the code to be general enough to compile under
a non-gnu compiler (MSVC here), then the end-developer will have an
easier time, especially with the dependencies. Building the gnuradio
dependencies from source, many needing patches, when your are already
trying to build gnuradio... well its a world of pain to say the least.

So, the burden on the code, means a burden on some developers to port
components and periodically pull in the latest branch and test it,
backport fixes. Thats why I ask, is anyone interested? Is it valuable
lower the entry bar to gnuradio on windows? Because if not, the burden
then falls back to the end-developer to setup a mingw/cygwin and build
all the dependencies. I guess thats the way it is.

mingw: I don't have much experience with mingw. From the wiki, it looks
like you have to build all the deps from source. I tried once to get an
environment setup and gave up in failure. Maybe its much better now. Can
anyone with mingw experience weigh in?

I use MinGW for my "production" GNU Radio system. It is a pain to gather and build the dependencies, but it's not as hard as it looks, and once it works it works forever. And if anyone is interested, I have a script to do all the work (posted twice, so far, in attachments to this list).

Cygwin: I like thats its easy to install to get the useful command line
tools, but building gnuradio + dependencies on it is just crazy hard.
And its this pseudo-emulated environment. I don't know what that does
for performance, but the gui apps don't look pretty. I did get grc
working on it years back, then after some code overhaul, the python and
gtk related packages were out of date for years. Can't mix dlls, cant
use the pre-built gtk installer; no grc 4u :-)

Cygwin is easier to get going, but Cygwin itself and the required dependencies make for a moving target with a continuously changing set of patches required to various packages. Speed doesn't seem to be an issue, apart from much slower builds (probably higher overhead to create a process).

I haven't tried building qtgui, grc, usrp2, or uhd on either system, so I don't know what the issues are with these.

I have never used MSVC, but given the choices I think it is worth pursuing. And I like the idea of being able to use the same build system on all platforms, though I can't comment on the practical aspects.

Thanks, Josh, for doing this. Even if your changes are never incorporated in the main repository, I hope they can be stashed with your notes somewhere where the next person with the time and motivation to work on this can find them.

-- Don W.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]