- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
I've built a program that uses mkl and ipp that runs on mac and linux. I'm now building that program for Windows using cygwin and gcc, and can't get it to link.
The errors I'm getting are:
Warning: .drectve `-defaultlib:"uuid.lib" ' unrecognized../../../bin/libMath.a(VectorUtility.cxx.o):VectorUtility.cxx:(.text+0x95): undefined reference to `_ippGetLibVersion'../../../bin/libMath.a(VectorUtility.cxx.o):VectorUtility.cxx:(.text+0x157): undefined reference to `_ippsWinHann_32f_I'
(and many more like that).
I'm using link path:
/opt/intel/IPP/6.1.2.041/ia32/include
and linking to the following:
ippiemerged,ippimerged,ippmemerged,ippmmerged,ippsemerged,ippsmerged andippcorel.
Can someone point me to what I'm doing wrong?
Thanks,
Jason
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hello Jason,
Maybe the link path : /opt/intel/ipp/6.1.2.041/ia32/include
should be /opt/intel/IPP/6.1.2.041/ia32/lib?
Regards,
Ying
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Ying,
Sorry, that was a typo in my message. I meant lib.
Any other ideas?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Jason,
GCC and Windows lib use different call convention for lib name. If you use 'nm' command line, you can find:
> nm myobj.o
U _ippsGetLibVersion
U _ippsWinHann_16s
In IPP, the entry poist are:
_ippsWinHann_16s@12
_ippsGetLibVersion@0
that is why the link can not find the symbols.
There is some discussion at cywin site on how use Windows lib with GCC:
on "How do I link against a .lib file" section:
Following some hints there, the followings steps looks to work for me now.
1) Build a custom DLL with IPP static libraries. You can use IPP sample code (ipp-samples\advanced-usage\linkage\customdll),
add the functions you used into .def file: into customdll\src\export.def
build the sample code, it created the DLL file: Bin\win32-xx\usr.dll
2) In cgwin, use the DLL tool to create a .a lib:
dlltool --def export.def --dllname usr.dll --output-lib myipplib.a
3) link 'myipplib.a' with you application.
Thanks,
Chao
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Thanks, Chao.
Those instructions helped. However, now I get runtime errors. It looks like the stack pointer is being modified during a call to, e.g.ippsConv_32f, which causes crashes due to bad memory access. It's possible to hack around this by saving the stack pointer before the call to ippsConv_32f, and restoring it afterwards, but I think there must be something else going on?
Any help would be much appreciated,
Thanks,
Jason
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Jason,
How about other functions work? Maybe you can post the code calling ippsCov_32f function here. so we can test what is the problem.
Thanks,
Chao
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告