2016-09-28 30 views
0

我無法在Windows 10機器上建立一個針對Windows 8.1的VC++項目。我得到的錯誤是「無法解析的外部符號_sprintf」。如果我將目標平臺更改爲Windows 10,或者我添加了legacy_stdio_definitions.lib,則只能構建該項目。我不想這樣做。我可以在沒有這樣做的情況下建立這個項目。我的同事可以在他們的機器上建立相同的代碼。問題是,我在機器上丟失了什麼?無法在VS2015中構建以Windows 8.1爲目標的C++項目。無法解析的外部符號_sprintf

我已經嘗試將視覺工作室更新到最新版本。我也嘗試從程序和功能修復視覺工作室。

回答

0

_sprintf在stdio.h中定義。如果你#include <stdio.h>你可以使用它。 這是一箇舊功能。請參閱here 瞭解有關該功能的更多信息及其用途。 C++具有詳細的功能模板版本here。該功能雖然是CRT庫的一部分,並且已經有相當長的一段時間了。檢查你的鏈接,並確保你喜歡有它的CRT,在你的情況下,它將是legacy_stdio_definitions.lib。在更改構建目標之前,它可能會自動鏈接到項目中,並且在您恢復構建目標時,該設置不會恢復到該設置。你的問題雖然是與項目設置,而不是Visual Studio或它自己的編譯器。

+0

相同的代碼建立在其他機器上。我的同事可以在他的機器上構建它,而無需更改目標平臺或添加legacy_stdio_definitions.lib。 – Lance

+0

可能是因爲他的機器已經鏈接到legacy_stdio_definitions.lib。很多這些舊的字符串函數都被棄用,這就是爲什麼他們被轉移到'legacy_stdio_definitions.lib' – johnathon

+0

現在我怎麼能在沒有更新項目的情況下對我的機器執行此操作? – Lance