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

Reply via email to