2015-05-21 149 views
8

由於過期的許可證,我最近被迫從Visual Studio 2015 Pre-Release升級到Visual Studio 2015 Release Candidate錯誤LNK2001 __imp_fprintf Visual Studio 2015 RC

我的項目之前建造得很好,但現在不是。我得到只有兩個鏈接錯誤,我已經花了最後兩天試圖解決這些問題:

1>SDL2main.lib(SDL_windows_main.obj) : error LNK2001: unresolved external symbol __imp_fprintf 
    1>SDL2main.lib(SDL_windows_main.obj) : error LNK2001: unresolved external symbol __imp___iob_func 

我鏈接到SDL2main因爲我從他們的網站得到它,我得到了與2.0版本相同的錯誤。 0和版本2.0.3,所以我不認爲這是具體版本的問題。

我有以下爲庫指定的目錄(注意x64文件夾,我正在構建64位,我也用「b2 address-model = 64」構建了boost)。

$(SolutionDir)../external/boost_1_58_0/stage/lib/ 
$(SolutionDir)../external/SDL/SDL2_ttf-2.0.12/lib/x64/ 
$(SolutionDir)../external/SDL/SDL2_mixer-2.0.0/lib/x64/ 
$(SolutionDir)../external/SDL/SDL2_image-2.0.0/lib/x64/ 
$(SolutionDir)../external/SDL/SDL2-2.0.0/lib/x64/ 
$(LibraryPath) 

注:我試過SDL2-2.0.3和SDL2-2.0.0這是一個我以前的工作積累使用

我沒有的Visual Studio 2013安裝有做(與VS2015)。和我的平臺工具集必須升級到的Visual Studio 2015年(V140),但我也試過唯一的其他選擇:的Visual Studio 2015年 - 的Windows XP(v140_xp)

我所尋找的是一個直接回答如何解決這個問題。如果需要,我可以提供更多細節。

+1

*鏈接到SDL2main因爲我是從他們的網站*你應該建立它自己,而不是 – stijn

+0

內置SDL2,似乎編譯,將需要得到它雖然運行,因爲我有更新一些DLL也是如此。 – M2tM

+1

似乎已經工作,如果你想要一些點,就繼續並回答它。 :) @stijn我不需要編譯SDL混音器,圖像或ttf,只需要SDL主項目。 – M2tM

回答

2

SDL2main不是針對與您使用的VS版本相同的版本構建的,並且沒有真正保證預發佈/ RC版本中的任何內容都完全向後兼容。如果你有源代碼,那麼自己構建所有東西總是一個好主意,具有大致相同的構建選項 - 尤其是那些用於靜態/動態鏈接和多線程等的構建選項 - 以便最終獲得完全兼容的庫。

另見this report