| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 29. libpq - C ¶óÀ̺귯¸® | Fast Forward | Next |
libpq¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÇ ±¸Ãà(Áï, ÄÄÆÄÀϰú ¸µÅ©)À» ½Ç½ÃÇϱâ À§Çؼ´Â ÀÌÇÏ ¸ðµÎ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
libpq-fe.hÇì´õ ÆÄÀÏÀ» ÀÎŬ·çµå ÇÕ´Ï´Ù.
#include <libpq-fe.h>
If you failed to do that then you will normally get error messages from your compiler similar to --> À̰ÍÀ» ÀØÀ¸¸é, ÀϹÝÀûÀ¸·Î ÄÄÆÄÀÏ·¯·ÎºÎÅÍ ÀÌÇÏ¿Í °°Àº ¿¡·¯ ¸Þ¼¼Áö°¡ ¹ß»ýÇÕ´Ï´Ù.
foo.c: In function `main': foo.c:34: `PGconn' undeclared (first use in this function) foo.c:35: `PGresult' undeclared (first use in this function) foo.c:54: `CONNECTION_BAD' undeclared (first use in this function) foo.c:68: `PGRES_COMMAND_OK' undeclared (first use in this function) foo.c:95: `PGRES_TUPLES_OK' undeclared (first use in this function)
ÄÄÆÄÀÏ·¯¿¡-I directory ¿É¼ÇÀ» ºÎ¿©ÇÏ´Â °ÍÀ¸·Î, ÄÄÆÄÀÏ·¯¿¡PostgreSQLÇì´õ ÆÄÀÏÀ» ¼³Ä¡ÇÑ µð·ºÅ丮¸¦ Å뺸ÇÕ´Ï´Ù. (µðÆúÆ®·Î ÀÌ µð·ºÅ丮¸¦ °Ë»öÇÏ´Â ÄÄÆÄÀÏ·¯µµ ÀÖ½À´Ï´Ù. ±× °æ¿ì´Â ÀÌ ¿É¼ÇÀ» »ý·«ÇÒ ¼ö ÀÖ½À´Ï´Ù. ) ¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°Àº ÄÄÆÄÀÏ Ä¿¸Çµå°¡ µË´Ï´Ù.
cc -c -I/usr/local/pgsql/include testprog.c
Makefile¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é, CPPFLAGSº¯¼ö¿¡ ÀÌ ¿É¼ÇÀ» Ãß°¡ÇØ Áֽʽÿä.
CPPFLAGS += -I/usr/local/pgsql/include
´Ù¸¥ À¯Àú°¡ ±× ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÒ °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì´Â À§¿Í °°ÀÌ µð·ºÅ丮ÀÇ Àå¼Ò¸¦ Á÷Á¢ ±âÀÔÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. ±× ´ë½Å¿¡pg_configÀ¯Æ¿¸®Æ¼¸¦ ½ÇÇàÇØ, °¢ ½Ã½ºÅÛ¿¡ ÀÖ¾î¼ Çì´õ ÆÄÀÏÀÌ ÀÖ´Â °÷À» °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù.
$ pg_config --includedir /usr/local/include
Á¤È®ÇÑ ¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ¾ø´Â °á°úÀÇ ÄÄÆÄÀÏ·¯´Â ÀÌÇÏ¿Í °°Àº ¿¡·¯ ¸Þ¼¼Áö¸¦ »ý¼ºÇÕ´Ï´Ù.
testlibpq.c:8:22: libpq-fe.h: No such file or directory
ÃÖÁ¾ÀûÀÎ ÇÁ·Î±×·¥ÀÇ ¿¬°áÇÒ ¶§ -lpq¿É¼ÇÀ» ÁöÁ¤ÇØ, libpq¶óÀ̺귯¸®¸¦ Â¥³Ö¾î Áֽʽÿä. µ¿½Ã¿¡-L directory ¿É¼ÇÀ» ÁöÁ¤ÇØ, ÄÄÆÄÀÏ·¯¿¡libpq¶óÀ̺귯¸®ÀÇ ÀÖ´Â °÷À» Åëº¸ÇØ Áֽʽÿä. (¹Ýº¹ÇÏÁö¸¸, ÄÄÆÄÀÏ·¯´Â µðÆúÆ®·Î ¸î °³ÀÇ µð·ºÅ丮¸¦ °Ë»öÇÕ´Ï´Ù. ) À̽ļºÀ» ÃÖ´ë·Î Çϱâ À§Çؼ, -lpq¿É¼Ç Àü¿¡-L¸¦ ±â¼úÇØ Áֽʽÿä. ÀÌÇÏ¿¡ ¿¹¸¦ µé¸é,
cc -o testprog testprog1.o testprog2.o -L/usr/local/pgsql/lib -lpq
À§°ú °°ÀÌpg_config¸¦ »ç¿ëÇØ ¶óÀ̺귯¸®°¡ ÀÖ´Â µð·ºÅ丮¸¦ ã¾Æ³¾ ¼öµµ ÀÖ½À´Ï´Ù.
$ pg_config --libdir /usr/local/pgsql/lib
ÀÌ ºÎºÐ¿¡¼ ¹®Á¦°¡ ÀÖ¾úÀ» °æ¿ìÀÇ ¿¡·¯ ¸Þ¼¼Áö´Â ÀÌÇÏ¿Í °°Àº °ÍÀÌ µË´Ï´Ù.
testlibpq.o: In function `main': testlibpq.o(.text+0x60): undefined reference to `PQsetdbLogin' testlibpq.o(.text+0x71): undefined reference to `PQstatus' testlibpq.o(.text+0xa4): undefined reference to `PQerrorMessage'
À̰ÍÀº-lpq¸¦ ÀØÀº °ÍÀ» ³ªÅ¸³À´Ï´Ù.
/usr/bin/ld: cannot find -lpq
À̰ÍÀº-L¸¦ Àؾú°Å³ª ¿Ã¹Ù¸¥ µð·ºÅ丮¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀº °ÍÀ» ³ªÅ¸³À´Ï´Ù.