can't build 2.0.6

Hi, my OS is an an up-to-date ArchLinux.

I just tried to build Audacity 2.0.6 from the last version available :

svn checkout > http://audacity.googlecode.com/svn/audacity-src/trunk/ > audacity

wxgtk is installed on my system.

./configure

is ok but after the

make

command I got the following error message :

In file included from AudacityApp.cpp:72:0:
FFmpeg.h: In function ‘AVOutputFormat* av_oformat_next(AVOutputFormat*)’:
FFmpeg.h:691:25: erreur: conflicting declaration of C function ‘AVOutputFormat* av_oformat_next(AVOutputFormat*)’
(AVOutputFormat f),
^
FFmpeg.h:485:18: note: in definition of macro ‘FFMPEG_FUNCTION_WITH_RETURN’
inline r n a
^
In file included from FFmpeg.h:44:0,
from AudacityApp.cpp:72:
/usr/include/libavformat/avformat.h:1800:17: note: previous declaration ‘AVOutputFormat
av_oformat_next(const AVOutputFormat*)’
AVOutputFormat av_oformat_next(const AVOutputFormat f);
^
In file included from AudacityApp.cpp:72:0:
FFmpeg.h: In function ‘int av_fifo_size(AVFifoBuffer
)’:
FFmpeg.h:758:23: erreur: conflicting declaration of C function ‘int av_fifo_size(AVFifoBuffer
)’
(AVFifoBuffer f),
^
FFmpeg.h:485:18: note: in definition of macro ‘FFMPEG_FUNCTION_WITH_RETURN’
inline r n a
^
In file included from FFmpeg.h:45:0,
from AudacityApp.cpp:72:
/usr/include/libavutil/fifo.h:76:5: note: previous declaration ‘int av_fifo_size(const AVFifoBuffer
)’
int av_fifo_size(FF_CONST_AVUTIL53 AVFifoBuffer f);
^
In file included from AudacityApp.cpp:72:0:
FFmpeg.h: In function ‘AVDictionaryEntry
av_dict_get(AVDictionary*, const char*, const AVDictionaryEntry*, int)’:
FFmpeg.h:804:82: erreur: conflicting declaration of C function ‘AVDictionaryEntry* av_dict_get(AVDictionary*, const char*, const AVDictionaryEntry*, int)’
(AVDictionary m, const char key, const AVDictionaryEntry prev, int flags),
^
FFmpeg.h:485:18: note: in definition of macro ‘FFMPEG_FUNCTION_WITH_RETURN’
inline r n a
^
In file included from /usr/include/libavcodec/avcodec.h:37:0,
from FFmpeg.h:43,
from AudacityApp.cpp:72:
/usr/include/libavutil/dict.h:104:20: note: previous declaration ‘AVDictionaryEntry
av_dict_get(const AVDictionary
, const char
, const AVDictionaryEntry*, int)’
AVDictionaryEntry *av_dict_get(FF_CONST_AVUTIL53 AVDictionary m, const char key,
^
In file included from AudacityApp.cpp:93:0:
widgets/ErrorDialog.h: In constructor ‘HtmlTextHelpDialog::HtmlTextHelpDialog()’:
widgets/ErrorDialog.h:49:23: attention : ‘virtual void wxWindowBase::MakeModal(bool)’ is deprecated (declared at /usr/include/wx-3.0/wx/window.h:688) [-Wdeprecated-declarations]
MakeModal( true );
^
widgets/ErrorDialog.h: In destructor ‘virtual HtmlTextHelpDialog::~HtmlTextHelpDialog()’:
widgets/ErrorDialog.h:53:24: attention : ‘virtual void wxWindowBase::MakeModal(bool)’ is deprecated (declared at /usr/include/wx-3.0/wx/window.h:688) [-Wdeprecated-declarations]
MakeModal( false );
^
In file included from AudacityApp.cpp:201:0:
…/images/AudacityLogoWithName.xpm: At global scope:
…/images/AudacityLogoWithName.xpm:2:21: attention : ‘AudacityLogoWithName_xpm’ defined but not used [-Wunused-variable]
static const char * AudacityLogoWithName_xpm[] = {
^
AudacityApp.cpp:213:13: attention : ‘void wxOnAssert(const wxChar
, int, const wxChar
)’ defined but not used [-Wunused-function]
static void wxOnAssert(const wxChar *fileName, int lineNumber, const wxChar *msg)

Before digging into the code, I wanted to ask first : any idea of what’s going on ?

Any help would be appreciated !

suizokukan

Try configuring with:

./configure --disable-dynamic-loading

@steve : thank you very much, the build is now completed. Do you know why the --disable-dynamic-loading option is necessary ?

By the way, I would like to know where the release version (something like ‘svn24000’) is stored in the trunk files ? I couldn’t find it.

Dynamic loading requires that FFmpeg has all the right hooks for Audacity, but many distributions do not carry an appropriate version in their repositories.
If you build shared libraries from the FFmpeg 2.2.2 source code, then it should (theoretically) be possible to enable dynamic loading. However, installing a non-standard (for your distribution) version of FFmpeg, if you have other media applications installed, is very likely to break things. It is much easier (and safer) to just disable dynamic loading. The downside is that you may find that some formats are not fully supported (on my Debian system, exporting stereo WMA files does not work, but other formats appear to be OK).

If you find that some formats that you need do not export correctly, you will probably be able to work round that by using Audacity’s “external program” option: Audacity Manual

You need to go up one level, then into “tags” Google Code Archive - Long-term storage for Google Code Project Hosting.

Thank you very much.

suizokukan

I compile FFmpeg from git 2.4.x and use the following patch to build audacity against it.Tested with audacity 2.0.6 and 2.0.7. I use ubuntu 14.10 BTW.
FFmpeg.patch (886 Bytes)