On Tue, Mar 14, 2017 at 9:30 AM, LacaK <la...@zoznam.sk> wrote: > Hi, > > I have C/C++ librarby (".lib" for Windows and ".a" for Linux) from Intel > IPP package (they distribute ".lib" and also ".dll" for Windows and ".a" > for Linux) > > Can I link in FPC (on Windows) at compile time to this ".lib" versions ? > Or only possible way is link at runtime using ".dll" (and distribute DLLs > with my EXE)? > (I guess, that FPC can not link to libraries not created in FPC itself. So > format of supplied ".lib" is not compatible with what FPC expects) > > I am trying do something like: > {$linklib libippi} > function ippiThreshold_LTValGTVal_8u_C1IR(pSrcDst: PIpp8u; srcDstStep: > int; > roiSize: IppiSize; thresholdLT: Ipp8u; valueLT: Ipp8u; thresholdGT: > Ipp8u; > valueGT: Ipp8u): IppStatus; external; // 'ippi.dll'; > > (In Project Options I have path to libippi.a in -Fl) > > But I get error: test_IPP.lpr(24,1) Error: Undefined symbol: > IPP_IPPITHRESHOLD_LTVALGTVAL_8U_C1IR$PIPP8U$LONGINT$IPPISIZE > $BYTE$BYTE$BYTE$BYTE$$IPPSTATUS >
test 1: are you on win32? If so, did you try using prefix "_"? eg: function _ippiThreshold_LTValGTVal_8u_C1IR(pSrcDst: PIpp8u; srcDstStep: int; roiSize: IppiSize; thresholdLT: Ipp8u; valueLT: Ipp8u; thresholdGT: Ipp8u; valueGT: Ipp8u): IppStatus; external; test 2: put the library implementation below function declaration, eg: function _ippiThreshold_LTValGTVal_8u_C1IR(pSrcDst: PIpp8u; srcDstStep: int; roiSize: IppiSize; thresholdLT: Ipp8u; valueLT: Ipp8u; thresholdGT: Ipp8u; valueGT: Ipp8u): IppStatus; external; {$linklib libippi} fix 1: check which convention your library was compiled, supposing it was compiled supporting CDECL, you need to specify it on your Pascal binding, avoiding low-level errors at runtime: function _ippiThreshold_LTValGTVal_8u_C1IR(pSrcDst: PIpp8u; srcDstStep: int; roiSize: IppiSize; thresholdLT: Ipp8u; valueLT: Ipp8u; thresholdGT: Ipp8u; valueGT: Ipp8u): IppStatus; cdecl; external; Anyway I've tried to use COFF objects on Windows, but I'm not sure if FPC supports that because it returns a "illegal COFF magic while reading some lib". :-/ (on Linux it works like a charm) > I am doing something wrong or just this is not possible ? > > Thank you > -Laco. -- Silvio Clécio
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel