2016-09-28 12 views
0

Windows 10マシンでWindows 8.1をターゲットとするVC++プロジェクトを構築できません。私が得ているエラーは、"未解決の外部シンボル_sprintf"です。私はターゲットプラットフォームをWindows 10に変更した場合、またはlegacy_stdio_definitions.libを追加した場合にのみプロジェクトを構築できます。私はしたくない。私はそれをしないうちにこのプロジェクトを構築することができます。そして私の同僚は自分のマシンに同じコードを作ることができます。問題は、私のマシンで何が欠けているのでしょうか?VS2015でWindows 8.1をターゲットとするC++プロジェクトをビルドできませんでした。未解決の外部シンボル_sprintf

私は既にビジュアルスタジオを最新のものに更新しようとしました。私はまた、からのプログラムと機能からVisual Studioを修復しようとしました。

答えて

0

_sprintfはstdio.hで定義されています。 #include <stdio.h>の場合は、それを使用することができます。 これは古い機能です。この関数とその使用に関する詳細については、here を参照してください。 C++には、hereの関数のテンプレートバージョンがあります。この機能はCRTライブラリの一部ですが、かなりの間使用されています。あなたのリンケージをチェックし、CRTにあなたの好きなことを確認してください。あなたの場合はlegacy_stdio_definitions.libになります。ビルドターゲットを変更する前に、自動的にプロジェクトにリンクされていた可能性があり、ビルドターゲットを元に戻したときの設定に戻りませんでした。あなたの問題は、プロジェクトの設定ではなく、ビジュアルスタジオやコンパイラ自体ではありません。

+0

同じコードが他のマシン上に構築されています。私の同僚は、ターゲットプラットフォームを変更したり、legacy_stdio_definitions.libを追加することなく、自分のマシン上に作成することができます。彼のマシンがすでにlegacy_stdio_definitions.libにリンクしている可能性がありますので、おそらく – Lance

+0

です。それらの古い文字列関数の多くは廃止されました。なぜ彼らは 'legacy_stdio_definitions.lib'に移動しました。 – johnathon

+0

プロジェクトを更新せずにマシンにそれをどうやって行うことができますか? – Lance

関連する問題