Hi,
I recieved a bunch of undefined reference, attach below, when I try to
compile this program. Can someone with rpm knowledge help me compile this
little program, thanks!
/******************* Start ****************************/
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <rpm/rpmlib.h>
void main(int argc, char **argv)
{
Header h;
int stat;
rpmdb db;
dbiIndexSet matches;
if(argc !=2 )
{
fprintf(stderr, "showdb2 <search term>\n");
exit(1);
}
// rpmReadConfigFiles(NULL, 0);
if(rpmdbOpen("", &db, O_RDONLY, 0644) != 0)
{
fprintf(stderr, "cannot open /var/lib/rpm/packages.rpm\n");
exit(1);
}
/*
stat = rpmdbFindPackage(db, argv[1], &matches);
printf("Status is: %d\n", stat);
if(stat == 0)
{
if(matches.count)
{
printf("Number of matches: %d\n", matches.count);
h = rpmdbGetRecord(db, matches.recs[0]..recOffset);
if(h) headerDump(h, stdout, 1);
headerFree(h);
dbiFreeIndexRecord(matches);
}
}
*/
rpmdbClose(db);
}
/**********************End***************************/
[kent@localhost kent]$ gcc -o showdb -I/usr/include -I/usr/lib/qt2 -lrpm
showdb.cpp
showdb.cpp:46:1: warning: no newline at end of file
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fdopen'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Unlink'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fopen'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `urlIsURL'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `unameToUid'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Pread'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fcntl'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `fdio'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `poptParseArgvString'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Readlink'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Glob'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Ferror'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmDumpMacroTable'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Chdir'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmExpand'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `urlGetFile'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fwrite'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fclose'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fseek'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fileno'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmIncreaseVerbosity'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `delMacro'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `urlPath'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Globfree'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `urlStrerror'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fflush'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmGetPath'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmInitMacros'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Stat'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `fdDup'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `addMacro'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmCleanPath'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `fdSize'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Mkdir'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmExpandNumeric'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `uidToUname'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `ftpStrerror'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `ufdio'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fstrerror'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to
`rpmGetVerbosity'/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so:
undefined reference to `Pwrite'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Rename'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `vmefail'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Rmdir'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmError'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmIsDebug'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Fread'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmIsVerbose'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Access'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmGenPath'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `gnameToGid'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `Lstat'
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/../../../librpm.so: undefined
reference to `rpmMessage'
collect2: ld returned 1 exit status