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

How to find which library contains which function?

Mellisa
Beginner
486 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
486 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
486 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
486 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