Linux build error: `AUDACITY_DLL_API' does not name a type

7 Messages Forum Options Options
Permalink
Chad Parker-2
Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
I just checked out a cvs copy of 1.3 and with the typical

./configure
make

I ended up with the following:

make[1]: Entering directory `/home/cparker/src/audacity/audacity/src'
g++ -c -I../lib-src/portmixer/include -I../lib-src/portaudio-v19/include   -Wall -I/usr/local/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -pthread -I../lib-src/FileDialog -Wall -I/home/cparker/src/audacity/audacity/lib-src/lib-widget-extra    -I../lib-src/libmad -I/usr/local/include     -I../lib-src/libresample/include -I../lib-src/soundtouch/include -I../lib-src/libnyquist/nyx -I../lib-src/libvamp  -I../lib-src/twolame/libtwolame -I/usr/local/include   -I/usr/local/include   -I/usr/local/include   -I../lib-src/libraptor/src -fno-strict-aliasing -I./include -I. -DLIBDIR=\"/usr/local//lib\"   -Wall   BlockFile.cpp -o BlockFile.o
In file included from Track.h:19,
                 from WaveTrack.h:14,
                 from BlockFile.h:19,
                 from BlockFile.cpp:54:
SampleFormat.h:41: error: `AUDACITY_DLL_API' does not name a type                                                                                                              

plus a slew more after this, I think they're all related to this one.

I'm using gcc 3.4.6

configure finished with

Finished configure:
LIBVORBIS: using SYSTEM libraries
LIBMAD: using LOCAL libraries
LIBSNDFILE: using SYSTEM libraries
LIBFLAC: using SYSTEM libraries
LIBID3TAG: using SYSTEM libraries
LIBSAMPLERATE: disabled
LIBRESAMPLE: using LOCAL libraries
LIBSOUNDTOUCH: using LOCAL libraries
LIBNYQUIST: using LOCAL libraries
LIBVAMP: using LOCAL libraries
LIBEXPAT: using SYSTEM libraries
LIBTWOLAME: using LOCAL libraries
FFMPEG: using SYSTEM libraries
LIBLRDF: using SYSTEM libraries
LIBRAPTOR: using LOCAL libraries
PORTSMF: disabled
ladspa: enabled
audiounits: disabled
prefix=/usr/local/
portaudio: v19

any help?
thanks,
--Chad

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Jan Kolar
Re: Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
Chad Parker napsal(a):

> I just checked out a cvs copy of 1.3 and with the typical
>
> ./configure
> make
>
> I ended up with the following:
>
> make[1]: Entering directory `/home/cparker/src/audacity/audacity/src'
> g++ -c -I../lib-src/portmixer/include -I../lib-src/portaudio-v19/include
> -Wall -I/usr/local/lib/wx/include/gtk2-unicode-release-2.8
> -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
> -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -pthread -I../lib-src/FileDialog -Wall
> -I/home/cparker/src/audacity/audacity/lib-src/lib-widget-extra
> -I../lib-src/libmad -I/usr/local/include
> -I../lib-src/libresample/include -I../lib-src/soundtouch/include
> -I../lib-src/libnyquist/nyx -I../lib-src/libvamp
> -I../lib-src/twolame/libtwolame -I/usr/local/include
> -I/usr/local/include   -I/usr/local/include   -I../lib-src/libraptor/src
> -fno-strict-aliasing -I./include -I. -DLIBDIR=\"/usr/local//lib\"   -Wall
> BlockFile.cpp -o BlockFile.o
> In file included from Track.h:19,
>                  from WaveTrack.h:14,
>                  from BlockFile.h:19,
>                  from BlockFile.cpp:54:
> SampleFormat.h:41: error: `AUDACITY_DLL_API' does not name a
> type
>
>
> plus a slew more after this, I think they're all related to this one.
>
> I'm using gcc 3.4.6
>
> configure finished with
>
> Finished configure:
> LIBVORBIS: using SYSTEM libraries
> LIBMAD: using LOCAL libraries
> LIBSNDFILE: using SYSTEM libraries
> LIBFLAC: using SYSTEM libraries
> LIBID3TAG: using SYSTEM libraries
> LIBSAMPLERATE: disabled
> LIBRESAMPLE: using LOCAL libraries
> LIBSOUNDTOUCH: using LOCAL libraries
> LIBNYQUIST: using LOCAL libraries
> LIBVAMP: using LOCAL libraries
> LIBEXPAT: using SYSTEM libraries
> LIBTWOLAME: using LOCAL libraries
> FFMPEG: using SYSTEM libraries
> LIBLRDF: using SYSTEM libraries
> LIBRAPTOR: using LOCAL libraries
> PORTSMF: disabled
> ladspa: enabled
> audiounits: disabled
> prefix=/usr/local/
> portaudio: v19
>
> any help?
>  

This helped me on cygwin: just define it.
I had more build problem, I think I will post  work-around 'patches'.

Jan

> thanks,
> --Chad
>
>  
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
> Studies have shown that voting for your favorite open source project,
> along with a healthy diet, reduces your potential for chronic lameness
> and boredom. Vote Now at http://www.sourceforge.net/community/cca08
> ------------------------------------------------------------------------
>
> _______________________________________________
> Audacity-devel mailing list
> Audacity-devel@...
> https://lists.sourceforge.net/lists/listinfo/audacity-devel
>  


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Vaughan Johnson
Re: Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
Jan Kolar wrote:

> Chad Parker napsal(a):
>  
>> ...
>> BlockFile.cpp -o BlockFile.o
>> In file included from Track.h:19,
>>                  from WaveTrack.h:14,
>>                  from BlockFile.h:19,
>>                  from BlockFile.cpp:54:
>> SampleFormat.h:41: error: `AUDACITY_DLL_API' does not name a
>> type
>> ...
>>    
>
> This helped me on cygwin: just define it.
> I had more build problem, I think I will post  work-around 'patches'.
>  
>

The idea is that you're not supposed to have to define it on other
platforms, I think, that all the cases are supposed to be handled in
Audacity.h . So is there another case that needs to be added to
Audacity.h so everybody can build from HEAD?

- V

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Richard Ash (audacity-help)
Re: Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
On Wed, 2008-07-02 at 23:57 -0400, Chad Parker wrote:

> I just checked out a cvs copy of 1.3 and with the typical
>
> ./configure
> make
>
> I ended up with the following:
>
> make[1]: Entering directory `/home/cparker/src/audacity/audacity/src'
> g++ -c -I../lib-src/portmixer/include
> -I../lib-src/portaudio-v19/include   -Wall
> -I/usr/local/lib/wx/include/gtk2-unicode-release-2.8
> -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
> -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -pthread -I../lib-src/FileDialog
> -Wall -I/home/cparker/src/audacity/audacity/lib-src/lib-widget-extra
> -I../lib-src/libmad -I/usr/local/include
> -I../lib-src/libresample/include -I../lib-src/soundtouch/include
> -I../lib-src/libnyquist/nyx -I../lib-src/libvamp
> -I../lib-src/twolame/libtwolame -I/usr/local/include
> -I/usr/local/include   -I/usr/local/include
> -I../lib-src/libraptor/src -fno-strict-aliasing -I./include -I.
> -DLIBDIR=\"/usr/local//lib\"   -Wall   BlockFile.cpp -o BlockFile.o
> In file included from Track.h:19,
>                  from WaveTrack.h:14,
>                  from BlockFile.h:19,
>                  from BlockFile.cpp:54:
> SampleFormat.h:41: error: `AUDACITY_DLL_API' does not name a
> type                                                                                                              
>
> plus a slew more after this, I think they're all related to this one.
>
> I'm using gcc 3.4.6
>
I think that's the problem - all other platforms have moved on to GCC
4.x, so we are not regularly building using old GCC versions. Does
cygwin not have a vaguely current GCC available?

Richard


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Richard Ash (audacity-help)
Re: Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
On Thu, 2008-07-03 at 15:46 -0700, Vaughan Johnson wrote:
> The idea is that you're not supposed to have to define it on other
> platforms, I think, that all the cases are supposed to be handled in
> Audacity.h . So is there another case that needs to be added to
> Audacity.h so everybody can build from HEAD?

I think the problem is the #typedef of functions which I've raised in
the past. The current AUDACITY_DLL_API logic is designed to be used in
function (method) prototypes. Where symbol visibility support isn't
available (as with GCC 3.4.x) then AUDACITY_DLL_API can be left blank
quite happily. The problems come when it gets used in a typedef instead,
because that then has to pass type naming rule checks which function
definitions don't. So the compiler is right - AUDACITY_DLL_API doesn't
name a type. The point is that is shouldn't name a type - it will either
be a compiler attribute specifier (__dllexport,
__visibility("default"), ..) or blank if there is no compiler support
for symbol visibility.

Richard


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Jan Kolar
Re: Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
Richard Ash wrote:

> On Wed, 2008-07-02 at 23:57 -0400, Chad Parker wrote:
>  
>> I just checked out a cvs copy of 1.3 and with the typical
>>
>> ./configure
>> make
>>
>> I ended up with the following:
>>
>> make[1]: Entering directory `/home/cparker/src/audacity/audacity/src'
>> g++ -c -I../lib-src/portmixer/include
>> -I../lib-src/portaudio-v19/include   -Wall
>> -I/usr/local/lib/wx/include/gtk2-unicode-release-2.8
>> -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
>> -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -pthread -I../lib-src/FileDialog
>> -Wall -I/home/cparker/src/audacity/audacity/lib-src/lib-widget-extra
>> -I../lib-src/libmad -I/usr/local/include
>> -I../lib-src/libresample/include -I../lib-src/soundtouch/include
>> -I../lib-src/libnyquist/nyx -I../lib-src/libvamp
>> -I../lib-src/twolame/libtwolame -I/usr/local/include
>> -I/usr/local/include   -I/usr/local/include
>> -I../lib-src/libraptor/src -fno-strict-aliasing -I./include -I.
>> -DLIBDIR=\"/usr/local//lib\"   -Wall   BlockFile.cpp -o BlockFile.o
>> In file included from Track.h:19,
>>                  from WaveTrack.h:14,
>>                  from BlockFile.h:19,
>>                  from BlockFile.cpp:54:
>> SampleFormat.h:41: error: `AUDACITY_DLL_API' does not name a
>> type                                                                                                              
>>
>> plus a slew more after this, I think they're all related to this one.
>>
>> I'm using gcc 3.4.6
>>
>>    
> I think that's the problem - all other platforms have moved on to GCC
> 4.x, so we are not regularly building using old GCC versions. Does
> cygwin not have a vaguely current GCC available?
>
> Richard
>
>  

Cygwin's most recent gcc is (or was 10 days ago)
         $ gcc --version
         gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
(and it is identified not to have visibility by configure).

I read bits from various cygwins includes, and I guess (really, I guess)
1. __declspec(dllexport) / __declspec(dllimport)  should compile.
2. "With the advent of auto-import in binutils, we no longer need to
worry about __declspec(dllexport) / __declspec(dllimport) and friends."
3. Since I doubt ELF is used on cygwin (??),  I am not shure if
visibility stuff will work after gcc 4 will enter cygwin.
4. visibility should work starting from gcc 3.5   but   *never* on
cygwin / win32 (?)


I think it would be nice if  audacity.h either defines AUDACITY_DLL_API
blank or
it gives an error/warning for easier localisation.


Vaughan Johnson wrote:
> So is there another case that needs to be added to
> Audacity.h so everybody can build from HEAD?
>
> - V
>  
I do not know what is Chad's platform; obviously not cygwin since he has
gcc 3.4.6.

As regards, cygwin, I think the question is whether there is will to
support it.

And if yes, should "native cygwin" *or*  Windows-mingw
compiled-on-cygwin be supported, *or* both *?*

Curently I made alpha 3 compile on native cygwin (see the hack 'patches'
in my second post "build problems" from 3.7.2008).
and it runs, opens and saves files, edits, plays and records, does
effects ...
It does _not_ have input selection box, does not use native volume.
Without nyquist (nyquist did not compile on Linux for me, either), and
with speaker icon almost black (reversed). Without icon.
Ondemand did not go through linking.   File>Open Metadata Editor crashes
(trying to find out why).
Generate>Pluck is missing  (why?).
I did not resolve a _FILE_OFFSET_BITS redefine issue yet.
e.t.c

Jan






-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Richard Ash (audacity-help)
Re: Linux build error: `AUDACITY_DLL_API' does not name a type
Reply Threaded More
Print post
Permalink
On Sat, 2008-07-05 at 21:38 +0200, Jan Kolar wrote:

> Richard Ash wrote:
> Cygwin's most recent gcc is (or was 10 days ago)
>          $ gcc --version
>          gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
> (and it is identified not to have visibility by configure).
>
> I read bits from various cygwins includes, and I guess (really, I guess)
> 1. __declspec(dllexport) / __declspec(dllimport)  should compile.
> 2. "With the advent of auto-import in binutils, we no longer need to
> worry about __declspec(dllexport) / __declspec(dllimport) and friends."
> 3. Since I doubt ELF is used on cygwin (??),  I am not shure if
> visibility stuff will work after gcc 4 will enter cygwin.
> 4. visibility should work starting from gcc 3.5   but   *never* on
> cygwin / win32 (?)
Fair point, I'd forgotten that gcc-on-win32 supports
__declspec(dllimport). More pre-processor logic needed to pick up use of
GCC on win32 and make the relevant definitions of AUDACITY_DLL_API.

> Curently I made alpha 3 compile on native cygwin (see the hack 'patches'
> in my second post "build problems" from 3.7.2008).
> and it runs, opens and saves files, edits, plays and records, does
> effects ...
> It does _not_ have input selection box, does not use native volume.
> Without nyquist (nyquist did not compile on Linux for me, either), and
> with speaker icon almost black (reversed). Without icon.
> Ondemand did not go through linking.   File>Open Metadata Editor crashes
> (trying to find out why).
> Generate>Pluck is missing  (why?).
It's a Nyquist plug-in - so if you disable nyquist then it can't be run.

Richard


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-devel mailing list
Audacity-devel@...
https://lists.sourceforge.net/lists/listinfo/audacity-devel