Page 1 of 1

can't build 2.0.6

Posted: Sun Nov 16, 2014 10:02 pm
by suizokukan
Hi, my OS is an an up-to-date ArchLinux.

I just tried to build Audacity 2.0.6 from the last version available :
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

Re: can't build 2.0.6

Posted: Sun Nov 16, 2014 10:52 pm
by steve
Try configuring with:

Code: Select all

./configure --disable-dynamic-loading

Re: can't build 2.0.6

Posted: Mon Nov 17, 2014 6:07 am
by suizokukan
@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.

Re: can't build 2.0.6

Posted: Mon Nov 17, 2014 7:15 am
by steve
suizokukan wrote: Do you know why the --disable-dynamic-loading option is necessary ?
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: http://manual.audacityteam.org/o/man/ex ... ogram.html
suizokukan wrote: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.
You need to go up one level, then into "tags" https://code.google.com/p/audacity/sour ... src%2Ftags

Re: can't build 2.0.6

Posted: Mon Nov 17, 2014 7:25 am
by suizokukan
Thank you very much.

suizokukan

Re: can't build 2.0.6

Posted: Mon Nov 17, 2014 9:25 am
by Hains
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.