Неопределенная ссылка на PQfinish, хотя библиотеки и т. Д. Включены

Я пытаюсь скомпилировать приложение на C ++ с помощью libpq. На моем Debian он отлично компилируется с помощью следующей команды:

g++ -I /usr/include/postgresql/ -L /usr/lib/postgresql/9.3/lib/ -lpq -o test test.cpp

На моем Ubuntu я получаю следующую ошибку:

undefined reference to 'PQfinish'

Я включил ссылку на заголовки и библиотеки postgresql и использовал -lpq. Что мне не хватает?


person user809829    schedule 26.11.2014    source источник


Ответы (1)


Переместите -lpq в конец командной строки.

Связывание выполняется в указанном порядке, и объекты берутся из библиотек только в том случае, если они необходимы для разрешения символов в этой точке. Таким образом, каждая библиотека должна идти после любого другого объекта, который в ней нуждается.

person Mike Seymour    schedule 26.11.2014
comment
Спасибо. Это помогло. Странно, что это работает на моем Debian. - person user809829; 26.11.2014