[Stk] Stk 4.4.4 and GCC-4.8

Eric Larson larson.eric.d at gmail.com
Sat Feb 1 16:13:33 PST 2014


Hello,

I recently had an issue compiling Stk 4.4.4 on GCC-4.8, mingw32 under
Windows. (I don't get the error when using an earlier version of GCC, so I
suspect it has to do with the GCC 4.7->4.8 changes.) I get compilation
errors (shown at the bottom) related to string functions that I can fix by
changing line 4 of "Stk.h" from:

#include <string>

to

#include <cstring>

However, I'm not sure this is the correct fix, which I suspect might
instead involve setting the "std" namespace somewhere. If this is the
correct solution, would it be worthwhile to put in the main distribution?

On a separate note, I get "unused parameter" compilation warnings when I
include Stk header files, for example from "include\Instrmnt.h" (lines 76,
94) where virtual functions are defined. It would be nice not to have these
warnings during compilation, and the code is easily fixed by changing, e.g.:

inline void Instrmnt :: setFrequency( StkFloat frequency )

to

inline void Instrmnt :: setFrequency( StkFloat /*frequency*/ )

Would those be worthwhile changes to make?

Cheers,
Eric

P.S. Here is the error that I get regarding the string functions:

cd src && make
> make[1]: Entering directory `/home/labsner/desktop/stk-4.4.4/src'
> g++ -O3 -Wall -I../include -Iinclude -fPIC -DHAVE_GETTIMEOFDAY
> -D__WINDOWS_DS__ -D__WINDOWS_MM__ -D__LITTLE_ENDIAN__
> -DRAWWAVE_PATH=\"../../rawwaves/\" -c Stk.cpp -o Release/Stk.o
> Stk.cpp:1:0: warning: -fPIC ignored for target (all code is position
> independent) [enabled by default]
>  /***************************************************/
>  ^
> In file included from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\_mingw.h:13:0,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\crtdefs.h:10,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\wchar.h:9,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cwchar:44,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\postypes.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\string:40,
>                  from ../include/Stk.h:4,
>                  from Stk.cpp:53:
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:
> In function 'errno_t stk::strcpy_s(char (&)[__size], const char*)':
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:28:3:
> error: '::strcpy_s' has not been declared
>
>  __CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_0_2_(errno_t,strcpy_s,char,,_Dst,size_t,,_SizeInBytes,const
> char *,,_Src)
>    ^
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:28:3:
> note: suggested alternative:
> In file included from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\_mingw.h:13:0,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\crtdefs.h:10,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\wchar.h:9,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cwchar:44,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\postypes.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\string:40,
>                  from ../include/Stk.h:4,
>                  from Stk.cpp:53:
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:28:3:
> note:   'stk::strcpy_s'
>
>  __CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_0_2_(errno_t,strcpy_s,char,,_Dst,size_t,,_SizeInBytes,const
> char *,,_Src)
>    ^
> In file included from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\_mingw.h:13:0,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\crtdefs.h:10,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\wchar.h:9,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cwchar:44,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\postypes.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\string:40,
>                  from ../include/Stk.h:4,
>                  from Stk.cpp:53:
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:
> In function 'errno_t stk::strcat_s(char (&)[__size], const char*)':
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:33:3:
> error: '::strcat_s' has not been declared
>
>  __CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_0_2_(errno_t,strcat_s,char,,strDestination,size_t,,numberOfElements,const
> char *,,strSource)
>    ^
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:33:3:
> note: suggested alternative:
> In file included from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\_mingw.h:13:0,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\crtdefs.h:10,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\wchar.h:9,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\cwchar:44,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\postypes.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\bits\char_traits.h:40,
>                  from
> c:\qt\qt5.2.0\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\string:40,
>                  from ../include/Stk.h:4,
>                  from Stk.cpp:53:
> c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\sec_api\string_s.h:33:3:
> note:   'stk::strcat_s'
>
>  __CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_0_2_(errno_t,strcat_s,char,,strDestination,size_t,,numberOfElements,const
> char *,,strSource)
>    ^
> make[1]: *** [Stk.o] Error 1
> make[1]: Leaving directory `/home/labsner/desktop/stk-4.4.4/src'
> make: *** [all] Error 2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ccrma-mail.stanford.edu/pipermail/stk/attachments/20140201/362c1751/attachment.html 


More information about the Stk mailing list