Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6594 Discussions

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

Anton_Sonushkin
Beginner
422 Views

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
Chao_Y_Intel
Employee
422 Views

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

regards,
Chao

Gennadiy_L_
Beginner
422 Views

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

Regards,

Gennadiy L.

HUR__CENGIZ
Beginner
422 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

 

 

 

 

HUR__CENGIZ
Beginner
422 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

Pavel_B_Intel1
Employee
422 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

mcolina1
Beginner
422 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

Reply