2014-04-03 113 views
0

我在編譯使用指令的蒙哥C驅動:無法鏈接MongoDB C驅動程序?

http://api.mongodb.org/c/current/building.html

用命令:

scons的--m32 - 標準-ENV

我現在試圖在另一個項目中使用驅動程序,在我用來編譯的同一臺機器上e驅動程序。我的環境是使用Visual Studio 2008(SP1)標準的Windows 7(64位)。我不是,但是使用IDE,但通過命令提示符自定義生成文件。

我把它添加到我的項目的makefile指向INCLUDE來我把它添加到我的項目的生成文件指向LIBS到mongoc.lib文件夾中的文件夾mongo.h

我的代碼是:

#include "blakserv.h" 

mongo conn; 

void InitMongo() 
{ 
    mongo_init(&conn); 
    mongo_client(&conn, "127.0.0.1", 27017); 
} 

void EndMongo() 
{ 
    mongo_destroy(&conn); 
} 

鏈接命令:

link -nologo debug\main.obj debug\loadkod.obj debug\class.obj debug\message.obj debug\object.obj debug\sendmsg.obj debug\roofile.obj debug\bufpool.obj debug\ccode.obj debug\channel.obj debug\list.obj debug\timer.obj debug\session.obj debug\loadrsc.obj debug\blakres.obj debug\roomdata.obj debug\commcli.obj debug\string.obj debug\async.obj debug\loadgame.obj debug\game.obj debug\term.obj debug\account.obj debug\loadacco.obj debug\saveacco.obj debug\savestr.obj debug\loadstr.obj debug\nameid.obj debug\time.obj debug\dllist.obj debug\trysync.obj debug\saveall.obj debug\loadall.obj debug\synched.obj debug\motd.obj debug\admin.obj debug\garbage.obj debug\kodbase.obj debug\savegame.obj debug\user.obj debug\system.obj debug\resync.obj debug\gamelock.obj debug\config.obj debug\apndfile.obj debug\admincons.obj debug\builtin.obj debug\version.obj debug\systimer.obj debug\memory.obj debug\interface.obj debug\intrlock.obj debug\chanbuf.obj debug\debug.obj debug\saversc.obj debug\adminfn.obj debug\table.obj debug\parsecli.obj debug\rscload.obj debug\crc.obj debug\md5.obj debug\maintenance.obj debug\block.obj debug\stringinthash.obj debug\intstringhash.obj debug\files.obj debug\sprocket.obj debug\database.obj debug\blakmongo.obj debug\blakserv.res gdi32.lib user32.lib wsock32.lib winmm.lib comctl32.liblibmysql.lib mongoc.lib bson.lib -OUT:debug\blakserv.exe /STACK:0x180000 /map /debug /subsystem:windows -nologo /debug /machine:ix86 

鏈接錯誤:

blakmongo.obj : error LNK2001: unresolved external symbol [email protected][email protected] 
blakmongo.obj : error LNK2001: unresolved external symbol [email protected][email protected] 
blakmongo.obj : error LNK2001: unresolved external symbol [email protected][email protected] 
debug\blakserv.exe : fatal error LNK1120: 3 unresolved externals 

鏈接命令清楚地顯示mongoc.lib,並且我已經使用dumpbin將.lib的頭文件轉儲到文件中,該文件清楚地顯示了所需的對象在其中。

我也嘗試編譯MongoDB驅動程序爲32與64位,但收到相同的結果。

我覺得答案是非常簡單的東西,我正在爲之着迷。

這是所有開源項目,位於:https://github.com/Daenks/Meridian59_103

感謝您的幫助!

回答

0

我想爲C驅動程序文檔的狀態表示歉意,我們實際上已經完全重寫,但沒有機會更新網站上的文檔。

你會看起來更好:https://github.com/mongodb/mongo-c-driver。構建系統更現代化(cmake基於Windows,其他地方使用自動工具),我們甚至可以使用win64提供的二進制文件。除了獲得更新之外,它幾乎與其他驅動程序的功能相同(包括2.6功能)。

看看它,看看它是否有幫助。

+0

好的,我會檢查出來,謝謝:) – Daenks