[Stk] Stk 4.4.4 and GCC-4.8

Stephen Sinclair sinclair at music.mcgill.ca
Sun Feb 2 05:04:40 PST 2014


I'll try to test it tomorrow on my Windows machine, but my first
impression is that your fix is incorrect.  The <string> and <cstring>
headers are not interchangeable.  Adding <cstring> may fix the error
since on Windows it makes the strcpy_s function available, however
since the STK code doesn't use any C string functions in that header
it shouldn't be necessary.  It looks like simply including <string> is
causing an error, which is odd, but is likely related to needing to
#define some sort of flag, possibly _WIN32 or something similar.

The other warnings you report should probably be fixed.

Steve


On Sun, Feb 2, 2014 at 1:13 AM, Eric Larson <larson.eric.d at gmail.com> wrote:
> 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
>
>
>
> _______________________________________________
> Stk mailing list
> Stk at ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/stk
>



More information about the Stk mailing list