Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6704 Discussions

Linking error IPP 6.0 with Visual Studio 2008 (with clr)

mweissbach
Beginner
508 Views
Hi everybody.

I'm new in using Visual Studio and have a problem with the linking options.

I have the evaluation version of the IPP 6.0.1.
I have a not managed library using /clr and the IPP (static lib / links the ippiemergedem64t.lib)
I want to link this library to an Windows Forms Application (therefore i compile the lib with /clr).

My problem is:
The lib compiles and links without any error.
When I want to link the library to the Forms-Application I get this errors:

Error2error LNK2028: unresolved token (0A00032C) "extern "C" enum IppStatus __stdcall ippiConvValid_32f_C1R(float const *,int,struct IppiSize,float const *,int,struct IppiSize,float *,int)" (?ippiConvValid_32f_C1R@@$$J240YG?AW4IppStatus@@PBMHUIppiSize@@0H1PAMH@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib

Error3error LNK2028: unresolved token (0A0003AA) "extern "C" enum IppStatus __stdcall ippiAbs_32f_C1IR(float *,int,struct IppiSize)" (?ippiAbs_32f_C1IR@@$$J216YG?AW4IppStatus@@PAMHUIppiSize@@@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib

Error4error LNK2019: unresolved external symbol "extern "C" enum IppStatus __stdcall ippiAbs_32f_C1IR(float *,int,struct IppiSize)" (?ippiAbs_32f_C1IR@@$$J216YG?AW4IppStatus@@PAMHUIppiSize@@@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib

Error5error LNK2019: unresolved external symbol "extern "C" enum IppStatus __stdcall ippiConvValid_32f_C1R(float const *,int,struct IppiSize,float const *,int,struct IppiSize,float *,int)" (?ippiConvValid_32f_C1R@@$$J240YG?AW4IppStatus@@PBMHUIppiSize@@0H1PAMH@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib


Can anybody tell me, why this error occurs? I linked also the libs of the IPP in my Application without any effect.

Thanks in advance

MWeissbach

edit: It seems that MS-VS2008 needs an __clrcall and the IPP declares it as __declspec. This is only an assumption after looking for the error the whole day ... Can anybody help? Thanks a lot!
0 Kudos
6 Replies
elhefe38
Beginner
508 Views
Hello

Quoting - mweissbach
Hi everybody.

I'm new in using Visual Studio and have a problem with the linking options.

I have the evaluation version of the IPP 6.0.1.
I have a not managed library using /clr and the IPP (static lib / links the ippiemergedem64t.lib)
I want to link this library to an Windows Forms Application (therefore i compile the lib with /clr).

My problem is:
The lib compiles and links without any error.
When I want to link the library to the Forms-Application I get this errors:

Error2error LNK2028: unresolved token (0A00032C) "extern "C" enum IppStatus __stdcall ippiConvValid_32f_C1R(float const *,int,struct IppiSize,float const *,int,struct IppiSize,float *,int)" (?ippiConvValid_32f_C1R@@$$J240YG?AW4IppStatus@@PBMHUIppiSize@@0H1PAMH@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib

Error3error LNK2028: unresolved token (0A0003AA) "extern "C" enum IppStatus __stdcall ippiAbs_32f_C1IR(float *,int,struct IppiSize)" (?ippiAbs_32f_C1IR@@$$J216YG?AW4IppStatus@@PAMHUIppiSize@@@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib

Error4error LNK2019: unresolved external symbol "extern "C" enum IppStatus __stdcall ippiAbs_32f_C1IR(float *,int,struct IppiSize)" (?ippiAbs_32f_C1IR@@$$J216YG?AW4IppStatus@@PAMHUIppiSize@@@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib

Error5error LNK2019: unresolved external symbol "extern "C" enum IppStatus __stdcall ippiConvValid_32f_C1R(float const *,int,struct IppiSize,float const *,int,struct IppiSize,float *,int)" (?ippiConvValid_32f_C1R@@$$J240YG?AW4IppStatus@@PBMHUIppiSize@@0H1PAMH@Z) referenced in function "public: int __thiscall cCannyEdgeDetector::process(float const *,unsigned int,struct sSize)" (?process@cCannyEdgeDetector@@$$FQAEHPBMIUsSize@@@Z)myAPPIPP.lib


Can anybody tell me, why this error occurs? I linked also the libs of the IPP in my Application without any effect.

Thanks in advance

MWeissbach

edit: It seems that MS-VS2008 needs an __clrcall and the IPP declares it as __declspec. This is only an assumption after looking for the error the whole day ... Can anybody help? Thanks a lot!

Which libraries are you linking exactly ?

a+
0 Kudos
mweissbach
Beginner
508 Views
Quoting - elhefe38

Which libraries are you linking exactly ?

a+



I include only the ipp.h

I link these libraries:
ippiemergedem64t.lib ippcoreem64tl.lib

These both should contain the functions.

System is an Intel Core 2 6600
0 Kudos
elhefe38
Beginner
508 Views
Quoting - mweissbach



I have the evaluation version of the IPP 6.0.1.
I have a not managed library using /clr and the IPP (static lib / links the ippiemergedem64t.lib)
I want to link this library to an Windows Forms Application (therefore i compile the lib with /clr).

I did not read fully what you wrote...
If you are using /clr, you are producing a managed dll (most probably a mixed dll).
How do you link the dll to your application ? Usually, when having a managed library you just need to add it as reference, not go through the usual .lib import you do for native code...

a+
0 Kudos
mweissbach
Beginner
508 Views
Quoting - elhefe38

I did not read fully what you wrote...
If you are using /clr, you are producing a managed dll (most probably a mixed dll).
How do you link the dll to your application ? Usually, when having a managed library you just need to add it as reference, not go through the usual .lib import you do for native code...

a+

Maybe i didn't get, what you mean with reference to a library, but the I tried (nearly) all ways out that can be found in the web.
The strange matter is, that the library, which includes the code from IPP directly, compiles and links without any complaint - and this library is compiled with /clr (and also would compile with /clr:pure).
This library includes a bunch ofnot managed classes.

At that point my Windows Forms application includes the (mentioned) library, which includes the IPP the linker complains about the not found symbols, included in the original post.

My question is the following (more precisely as in the original post):
How do I include a library with unmanaged code in Windows forms, which includes the IPP (and runs on its own).

Hint: Without the inclusion of the IPP, the whole application compiles, linkes and runs wonderful without any complaint.

Thanks

mw
How
0 Kudos
mweissbach
Beginner
508 Views
Quoting - mweissbach

Maybe i didn't get, what you mean with reference to a library, but the I tried (nearly) all ways out that can be found in the web.
The strange matter is, that the library, which includes the code from IPP directly, compiles and links without any complaint - and this library is compiled with /clr (and also would compile with /clr:pure).
This library includes a bunch ofnot managed classes.

At that point my Windows Forms application includes the (mentioned) library, which includes the IPP the linker complains about the not found symbols, included in the original post.

My question is the following (more precisely as in the original post):
How do I include a library with unmanaged code in Windows forms, which includes the IPP (and runs on its own).

Hint: Without the inclusion of the IPP, the whole application compiles, linkes and runs wonderful without any complaint.

Thanks

mw
How

edit: in the mean time I understand, what you meant with "reference". But VS2008 says that it can't import the dlls as references.

Since the edit function results in a SQL-error, I reply to my own post. Sorry for that.

mw
0 Kudos
mweissbach
Beginner
508 Views


Problem solved. For solution see post in this thread:
http://software.intel.com/en-us/forums/showthread.php?t=63853

mw

0 Kudos
Reply