Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
112 Views

Legacy IPP headers do not compile with 2018 Update 3 in Visual Studio

Compilation c++ code with IPP legacy headers gives  the following errors after updating to Parallel Studio XE 2018 Update 3.

An example code could contain just:

#include <ippi90legacy.h>

Severity    Code    Description    Project    File    Line    Suppression State
Error    C2146    syntax error: missing ';' before identifier 'legacy90ippiInit'    ipp_legacy_err    c:\program files (x86)\intelswtools\compilers_and_libraries_2018.3.210\windows\ipp\include\ippi90legacy.h    58    
Error    C4430    missing type specifier - int assumed. Note: C++ does not support default-int    ipp_legacy_err    c:\program files (x86)\intelswtools\compilers_and_libraries_2018.3.210\windows\ipp\include\ippi90legacy.h    58    
Error    C2086    'IppStatus __STDCALL': redefinition    ipp_legacy_err    c:\program files (x86)\intelswtools\compilers_and_libraries_2018.3.210\windows\ipp\include\ippi90legacy.h    74    

 

0 Kudos
6 Replies
Highlighted
Employee
112 Views

Hi,  
Thanks for the report, and we are checking this code. 

regards,
Chao

0 Kudos
Highlighted
Beginner
112 Views

Hi. After last Visual Studio 2017 update IPP installing vithout integration vith VS.

Regards,

Gennadiy L.

0 Kudos
Highlighted
Beginner
112 Views

Hi,
I am trying to run an empty hello world code (IPP 2018), but it does not compile on VS 2017 or QT Creator.

Code is as follows:

#include "ipps90legacy.h"
 
Del::Del()
{
    ippInit(); // Initialize Intel IPP dispatcher
}

 

Come up with 152 errors saying things like:

syntax error: missing ';' before identifier 'legacy90ippsInit'
'IppStatus __STDCALL': redefinition

...
 

Is there any way to run legacy libs with IPP 2018, MSVC 2017 64bit? Or any alternative to compile old code written with earlier versions ( <= IPP 8) with IPP 2018 ? Or where can I find earlier versions of IPP?

Thanks, regards

Cengiz

 

 

 

 

0 Kudos
Highlighted
Beginner
112 Views

Hi,
I am trying to run an empty hello world code (IPP 2018), but it does not compile on VS 2017 or QT Creator.

Code is as follows:

#include "ipps90legacy.h"
 
Del::Del()
{
    ippInit(); // Initialize Intel IPP dispatcher
}

 

Come up with 152 errors saying things like:

syntax error: missing ';' before identifier 'legacy90ippsInit'
'IppStatus __STDCALL': redefinition

...
 

Is there any way to run legacy libs with IPP 2018, MSVC 2017 64bit? Or any alternative to compile old code written with earlier versions ( <= IPP 8) with IPP 2018 ? Or where can I find earlier versions of IPP?

Thanks, regards

Cengiz

0 Kudos
Highlighted
Employee
112 Views

Hi Gengiz,

I'm sorry to ignore your question so long time. Yes we changed IPP header files in IPP 2018 release to be compliant with C language standard. This is a simple workaround:

add only 3 lines of code:

#if !defined( __STDCALL )
#define __STDCALL IPP_STDCALL 
#endif

these lines can be added either before any "legacy" header declaration, or embedded into ippdefs90legacy.h after line #35:

#ifndef __IPPDEFS_90_LEGACY_H__
#define __IPPDEFS_90_LEGACY_H__

#include "ippbase.h"
#include "ipptypes.h"
#if !defined( __STDCALL )
#define __STDCALL IPP_STDCALL 
#endif

Pavel

0 Kudos
Highlighted
Beginner
112 Views

Pavel Berdnikov (Intel) wrote:

Hi Gengiz,

I'm sorry to ignore your question so long time. Yes we changed IPP header files in IPP 2018 release to be compliant with C language standard. This is a simple workaround:

add only 3 lines of code:

#if !defined( __STDCALL )
#define __STDCALL IPP_STDCALL 
#endif

these lines can be added either before any "legacy" header declaration, or embedded into ippdefs90legacy.h after line #35:

#ifndef __IPPDEFS_90_LEGACY_H__
#define __IPPDEFS_90_LEGACY_H__

#include "ippbase.h"
#include "ipptypes.h"
#if !defined( __STDCALL )
#define __STDCALL IPP_STDCALL 
#endif

Pavel

Confirmed this works. Thanks.

 

-Mike

0 Kudos