これは、少なくとも 2 つの密接に関連しているが異なる質問のシリーズの一部です。別々に尋ねることで、正しいことをしていると思います。
Visual C++ 2008 アプリを C ランタイム ライブラリなしで動作させようとしています。これは、MFC やその他の凝ったものを使用せず、単純な Windows API だけの Win32 GUI アプリです。
そこで、Project Properties -> Configuration -> C/C++ -> Advanced -> Omit Default Library Names を Yes (コンパイラ フラグ/Zl
) に設定し、再ビルドしました。私の他の質問の主題である適切なエントリポイント関数を書いたとしましょう。
2 つのリンカー エラーが発生します。それらはおそらく関連しています。リンカは、未解決の外部シンボル__fltused
と_memcpy
inについて文句を言いfoobar.obj
ます。言うまでもなく、私は自分のプログラムでどちらも明示的に使用していませんが、memcpy
どこかで使用していますfoobar.cpp
。(私は使用していたでしょうが、それはd と同一であるCopyMemory
ことが判明しました...)#define
memcpy
memcpy
(のようなコンパイラ組み込み関数を使用することで問題を解決できると思って#pragma intrinsic(memcpy)
いましたが、違いはありません。)
プリプロセッサの出力 (コンパイラのコマンド ラインに追加) を見ると、またはin/P
への参照が見当たりません。__fltused
_memcpy
foobar.i
ですから、私の質問は、これらのリンカー エラーはどこから来て、どのように解決すればよいのでしょうか?