TITnet

Работа с PostgreSQL в Cи

06.11.2009, 23:21. Показов 3103. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю, как в мануале, но не работает.



Вот, что делаю:

Code
1
tit@tubuntu:~/labs/C$ cat ./main.c
C
1
2
3
4
5
6
7
8
9
10
11
12
#include "/usr/include/postgresql/libpq-fe.h"
#include <stdio.h>
#include <stdlib.h>
void main()
{
    const char *conninfo= "dbname=HOSTNAME host=HOSTADDRESS username=USERNAME";
    PGconn *conn=PQconnectdb(conninfo);
    if (PQstatus(conn) != CONNECTION_OK)
    {
        fprintf(stderr, "Не удалось соединиться с базой данных: %s",PQerrorMessage(conn));
    }
}


Вот что выдаёт при компиляции:

Code
1
tit@tubuntu:~/labs/C$ gcc ./main.c
Code
1
2
3
4
5
/tmp/ccaCtHxX.o: In function `main':
main.c:(.text+0x19): undefined reference to `PQconnectdb'
main.c:(.text+0x29): undefined reference to `PQstatus'
main.c:(.text+0x39): undefined reference to `PQerrorMessage'
collect2: ld returned 1 exit status


Вывод pg_config (если надо):

Code
1
tit@tubuntu:~/labs/C$ pg_config
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
BINDIR = /usr/lib/postgresql/8.4/bin
DOCDIR = /usr/share/doc/postgresql
HTMLDIR = /usr/share/doc/postgresql
INCLUDEDIR = /usr/include/postgresql
PKGINCLUDEDIR = /usr/include/postgresql
INCLUDEDIR-SERVER = /usr/include/postgresql/8.4/server
LIBDIR = /usr/lib
PKGLIBDIR = /usr/lib/postgresql/8.4/lib
LOCALEDIR = /usr/share/locale
MANDIR = /usr/share/postgresql/8.4/man
SHAREDIR = /usr/share/postgresql/8.4
SYSCONFDIR = /etc/postgresql-common
PGXS = /usr/lib/postgresql/8.4/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--build=i486-linux-gnu' '--prefix=/usr' '--includedir=/usr/include' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=/usr/lib/postgresql-8.4' '--disable-maintainer-mode' '--disable-dependency-tracking' '--srcdir=.' '--mandir=/usr/share/postgresql/8.4/man' '--with-docdir=/usr/share/doc/postgresql-doc-8.4' '--sysconfdir=/etc/postgresql-common' '--datadir=/usr/share/postgresql/8.4' '--bindir=/usr/lib/postgresql/8.4/bin' '--includedir=/usr/include/postgresql/' '--enable-nls' '--enable-integer-datetimes' '--enable-thread-safety' '--enable-debug' '--disable-rpath' '--with-tcl' '--with-perl' '--with-python' '--with-pam' '--with-krb5' '--with-gssapi' '--with-openssl' '--with-libxml' '--with-libxslt' '--with-ldap' '--with-ossp-uuid' '--with-gnu-ld' '--with-tclconfig=/usr/lib/tcl8.5' '--with-tkconfig=/usr/lib/tk8.5' '--with-includes=/usr/include/tcl8.5' '--with-system-tzdata=/usr/share/zoneinfo' '--with-pgport=5432' 'CFLAGS=-g -O2 -g -Wall -O2 -fPIC' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,--as-needed' 'build_alias=i486-linux-gnu' 'CC=cc' 'CPPFLAGS='
CC = cc
CPPFLAGS = -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.5
CFLAGS = -g -O2 -g -Wall -O2 -fPIC -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -g
CFLAGS_SL = -fpic
LDFLAGS = -Wl,-Bsymbolic-functions -Wl,--as-needed -Wl,--as-needed
LDFLAGS_SL = 
LIBS = -lpgport -lxslt -lxml2 -lpam -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -lreadline -lcrypt -ldl -lm 
VERSION = PostgreSQL 8.4.1
Что я делаю не так?
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.11.2009, 23:21
Ответы с готовыми решениями:

Работа с dataTable и PostgreSQL
Здравствуйте! У меня такая проблема, не могу решить: у меня есть dataTable в c#, в нем лежат некие данные. И мне надо из datatable...

Laravel. Работа с высоконагруженными БД: MySQL, PostgreSQL
Доброго времени суток. Все проекты разрабатываю на Laravel 5.4. Все запросы к БД выполнял методами фреймворка, как например:...

Access и PostgreSQL: подключение к БД, работа с таблицами
Доброго времени суток! Возникла необходимость научиться работать через элементы управления, созданные в Access 2013 с PostgreSQL. ...

2
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
06.11.2009, 23:38
Code
1
gcc main.c -o main -lpq
Если так?
2
TITnet
06.11.2009, 23:48
Цитата Сообщение от Gravity Посмотреть сообщение
Code
1
gcc main.c -o main -lpq
Если так?
Фантастика. Спасибо большое. Всё получилось.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.11.2009, 23:48
Помогаю со студенческими работами здесь

Работа с прогресс баром на веб-сервисе + хранимка на postgresql
Здравствуйте, друзья. Проблема состоит в следующем: 1) Проект долго запускается,так как в нём веб-сервис и получается пока поднимется iis...

Qt + PostgreSQL
Здравствуйте!Я опять с вопросом, никак не могу разобраться.Нашла урок по Qt (http://symmetrica.net/qt4/lesson1.htm) в котором работают с...

C# и PostGresql
Привет всем, вобщем я пока еще новичок в этом деле и только начинаю изучать пространства имен. Так вот, как можно узнать количество записей...

С++ и PostgreSQL
Всем доброго времени суток! Прошу помочь разобраться. Есть два сервера на FreeBSD 8.2, на 1-ом крутится БД PostgreSQL, а на втором...

PostgreSQL
Здраствуйте. Работаю на одной из фирм , програмистом. Тока начинают. Програмирую на Линуксе. Так вот дали задание сотворить програмку с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru