2013-04-04 51 views
0

即時通訊使用Visual Studio 2012 Ultimate和PostgreSQL 9.2 64位。 我設置了以下設置一個全新的項目:通過C++訪問PostgreSQL - 接口(鏈接器錯誤)

其他包括文件夾:「C:\ Program Files文件\的PostgreSQL \ 9.2 \包括\」

附加libs文件夾:「C:\ Program Files \ PostgreSQL \ 9.2 \ lib \「

Im針對」libpq.lib「鏈接。

我的問題看起來像這樣:

#include <iostream> 
using namespace std; 

#include <libpq-fe.h> 

int main() { 

    PGconn *psql = PQconnectdb("hostaddr = '127.0.0.1' port = '' dbname = 'fwaggle' user = 'fwaggle' password = 'password' connect_timeout = '10'"); 
    /* init connection */ 
    if (!psql) { 

    } 

    std::cin.get(); 
    return 0; 
} 

結果:「錯誤LNK2019:Verweis奧夫nichtaufgelöstesexternes符號 「_PQconnectdb」 中的Funktion 「_main」 我不能擺脫這個鏈接錯誤的,我是什麼做錯了

+3

對於那些無法猜測錯誤消息所說的內容:*在函數「_main」*中引用未解析的外部符號「_PQconnectdb」。 – Oswald 2013-04-04 11:02:03

回答

2

好吧,我想通了事情的原委:

書面我安裝PostgreSQL的64位,但我試圖編譯和反對從PostgreSQL 64位libpg鏈接一個32位的項目。 從WIN32更改爲x64後,連接成功。

2

看看這個鏈接:http://www.askyb.com/cpp/c-postgresql-example/

這表明,你必須設置附加依賴以及附加包含和lib文件夾

0。

如果不成功,請仔細檢查您嘗試呼叫的方法的名稱,並仔細檢查Additional Includes和Lib設置中的路徑;從資源管理器複製並粘貼它們以確定。

您可能還想使用depends.exe來檢查該DLL是否實際導出了您之後的方法。

+0

只是想指出我已經遇到了與問題相同的問題,並將libpq.dll和libint.dll複製到本地目錄後,將libpq.dll設置爲額外的dep工作。 – user3791372 2014-08-06 07:35:49