2012-12-14 84 views
4

這是在做我的堅果英寸我只是試圖包括pdcurses(即Windows的ncurses)到測試程序。聯動雖然失敗。使用Visual Studio 2010的pdcurses鏈接

使用Visual Studio 2010

我充分意識到建立正確的鏈接附加庫路徑,並列出庫本身。沒有快樂。

我已經嘗試了pdcurses網站上的各種前置設備。沒有這樣的運氣。

我當然採取從源頭上建設。按照規定從Visual Studio命令提示符處使用nmake。建好了。 Nada的鏈接。

我錯過了什麼。這也許上週五隻是爲時已晚......下面

輸出:

1>------ Build started: Project: test, Configuration: Debug x64 ------ 
1>Build started 14/12/2012 16:24:32. 
1>InitializeBuildStatus: 
1> Touching "x64\Debug\test.unsuccessfulbuild". 
1>ClCompile: 
1> main.c 
1>C:\dep\pdcurses\curses.h(160): warning C4005: 'MOUSE_MOVED' : macro redefinition 
1>   C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wincon.h(101) : see previous definition of 'MOUSE_MOVED' 
1>main.c(73): warning C4133: 'function' : incompatible types - from 'unsigned short [20]' to 'const char *' 
1>ManifestResourceCompile: 
1> All outputs are up-to-date. 
1>main.obj : error LNK2019: unresolved external symbol endwin referenced in function main 
1>main.obj : error LNK2019: unresolved external symbol wgetch referenced in function main 
1>main.obj : error LNK2001: unresolved external symbol __imp_stdscr 
1>main.obj : error LNK2019: unresolved external symbol refresh referenced in function main 
1>main.obj : error LNK2019: unresolved external symbol printw referenced in function main 
1>main.obj : error LNK2019: unresolved external symbol initscr referenced in function main 
1>C:\proj\test.exe : fatal error LNK1120: 6 unresolved externals 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:01.47 

回答

4

確定。我覺得很愚蠢。這是後人的解決方案...

分佈式pdcurses二進制文件是32位。我試圖建立64位

基本上,我忘了第一條鏈接規則:不要混搭搭建架構。

更具體地,試圖然後從源代碼編譯的時候:

1)提防開始錯誤的Visual Studio命令提示。工具菜單中的默認值是x86。如果你只是嘗試運行cl.exe,你會發現這一點。

相反,從運行開始菜單的提示:Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio x64 Win64 Command Prompt (2010)

調用構建然後通過cd'ing到pdcurses目錄/ win32a和打字:

nmake -f vcwin32.mak DLL=pdcurses.dll 

此外,2)你編譯pdcurse前在pdcurses的Windows生成文件的變化線111(vcwin32.mak):

cvtres /MACHINE:X64 /NOLOGO /OUT:pdcurses.obj pdcurses.res 

(注:即X64架構!)

現在一切都是一致的。 pdcurses庫將建立。它會與我的測試應用程序鏈接(正如原始輸出所示),我正在構建在x64上。

+0

非常感謝你,這已經讓我的大腦變得疲憊,爲什麼它不工作!.......... – joelyboy94