У меня есть следующие файлы и ошибки, описанные ниже:
1- Connection.cpp
#include "iostream"#include "stdafx.h"#include "Connection.h"#include <libpq-fe.h>
using namespace std;
Connection::Connection()
{
}
PGconn *Connection::getConnection()
{
const char *connStr = "dbname=Fidelity user=postgres password=home hostaddr=127.0.0.1 port=5432";
PGconn* conn;
conn = PQconnectdb(connStr);
/* if(PQstatus(conn) != CONNECTION_OK)
{
cout << "\nConnection Failed.";
PQfinish(conn);
}
else
{
cout << "\nConnection Successful\n\n";
}*/
return conn;
}
2- Основной файл:
#include "stdafx.h"#include "DataCorroborationDLL.h"#include "iostream"#include "conio.h"#include "Connection.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif// The one and only application object
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
HMODULE hModule = ::GetModuleHandle(NULL);
if (hModule != NULL)
{
// initialize MFC and print and error on failure
if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
cout << "Hello world";
Connection con;
con.getConnection();
cout <<getch();
}
}
else
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: GetModuleHandle failed\n"));
nRetCode = 1;
}
return nRetCode;
}
Я включил «include Directory» в postgresql, где он установлен, и он включает в себя каталоги, а также каталог lib. Он распознает команды postgres, но не все. Теперь, когда я компилирую, я получаю эту ошибку:
Connection.obj: ошибка LNK2001: неразрешенный внешний символ _PQconnectdb
1> C: \ Users \ Irfan \ Desktop \ IGD \ DataCorroborationDLL \ Release \ Tests.exe: фатальная ошибка
LNK1120: 1 неразрешенное внешнее
Задача ещё не решена.
Других решений пока нет …