Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
6814 Discussions

How to find which library contains which function?

Mellisa
Beginner
658 Views

Hi,

I'm new to IPP. This question might sound a little dumb. But please help.

I'm having some linking errors because I didn't include the correct library which contains the functions I'm using in my makefile. the function I'm using is labelmarkers() to do the 2D labeling.

Can anyone tell me which library I should link to?

And more generally, how doI know which library contains which functions?

Thanks.

0 Kudos
3 Replies
Chao_Y_Intel
Moderator
658 Views

Hi,
labelmarker is a computer vision function. For static linking, you can choose ippcvemerged.lib ippcvmerged.lib
For dynamically linking, choose ippcv.lib
The followingarticles may help you findwhich librariesneededin your application:
Thanks,
Chao
0 Kudos
Mellisa
Beginner
658 Views
Quoting - Chao Yu (Intel)

Hi,
labelmarker is a computer vision function. For static linking, you can choose ippcvemerged.lib ippcvmerged.lib
For dynamically linking, choose ippcv.lib
The followingarticles may help you findwhich librariesneededin your application:
Thanks,
Chao


Hi Chao,

Thank you very much for your reply. That really helps a lot.

0 Kudos
franknatoli
New Contributor I
658 Views

You can use the following command line program to find strings in binary files. When your linker complains, navigate to the IPP/UMC directory with the LIB files, and use the below to find the relevant LIB file.

Type "stringfind -sUndefinedGlobalFunctionName *.lib". Be sure to enter the fully qualified function name for "UndefinedGlobalFunctionName", including all at-signs "@" and relevant characters.

#include
#include
#include
#include

#define MIN_LEN 8
#define MAX_LEN 1024

int main(int argc,char **argv)
{
DWORD dwMinLen=MIN_LEN;
char cData;
char szText[MAX_LEN];
char szSearchString[MAX_LEN];
WIN32_FIND_DATA FindData;
FILE *fp;

szSearchString[0] = 0;
for (int argn = 1; argn < argc; argn++)
switch (argv[argn][0])
{
case '-' :
switch (argv[argn][1])
{
case 'm' :
sscanf(&argv[argn][2],"%u",&dwMinLen);
break;
case 's' :
strcpy_s(szSearchString, sizeof(szSearchString), &argv[argn][2]);
break;
default :
fputs("Usage : StringFind [-m] -s file1...n", stderr);
break;
}
break;

default :
if (szSearchString[0] == 0)
{
fputs("Usage : StringFind [-m] -s file1...n",stderr);
return(1);
}

HANDLE hFind = FindFirstFile(argv[argn], &FindData);
if (hFind == INVALID_HANDLE_VALUE)
{
LPVOID errmsg;
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, 0, GetLastError(), 0, (LPTSTR)&errmsg, 0, NULL);
fprintf(stderr, "FindFirstFile %s failure (%d) %s", argv[argn], GetLastError(), errmsg);
LocalFree(errmsg);
continue;
}

do
{
errno_t result = fopen_s(&fp, FindData.cFileName, "rb");
if (result)
{
sprintf_s(szText, sizeof(szText), "fopen %s failure (%d)", FindData.cFileName, result);
perror(szText);
continue;
}

DWORD dwTextLen = 0;
while (cData = fgetc(fp), !feof(fp))
{
// if printable character
if (cData >= 0x20 && cData <= 0x7E)
{
// if room available for character
if (dwTextLen < sizeof(szText) - 1)
{
szText[dwTextLen++] = cData;
szText[dwTextLen] = 0;
}
}
// if not printable character
else
{
// if any string accumulated
if (dwTextLen > 0)
{
if (strstr(szText, szSearchString))
printf("%s : %sn", FindData.cFileName, szText);
dwTextLen = 0;
}
}
}

fclose(fp);

} while (FindNextFile(hFind, &FindData));

FindClose(hFind);
break;
}
}

0 Kudos
Reply