Я пытаюсь скомпилировать приложение 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. Что мне не хватает?
Переместите -lpq
в конец командной строки.
Связывание выполняется в указанном порядке, и объекты берутся только из библиотек, если они необходимы для разрешения символов в этой точке. Поэтому каждая библиотека должна появиться после любого другого объекта, который в ней нуждается.