簡単なテスト コンソール アプリケーションがあります。simple.h ファイルで定義された関数 nike2 を使用しようとしていますが、実現は simple.cpp にあります。simple.h ファイルと simple.cpp ファイルは両方とも、メイン プロジェクトとは別のディレクトリにあります。
プロジェクト エクスプローラーで、「ヘッダー ファイル」に simple.h を追加し、「ソース ファイル」に simple.cpp を追加しました (必要かどうかはわかりません)。
コンソール アプリ:
#include "stdafx.h"
#include "..\..\simple.h"
int _tmain(int argc, _TCHAR* argv[])
{
nike2(5);
return 0;
}
シンプル.h
#include <cstdlib>
#include <iostream>
#ifndef MEMORY
#define MEMORY
int var;
int nike2(int f);
#endif /*MEMORY*/
シンプル.cpp
#include <cstdlib>
#include <iostream>
#include "simple.h"
int nike2(int f)
{
return 0;
}
コンパイル中にエラーが発生しました:
Error 4 error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source? c:\c\simple.cpp 11 1 usingHeader
なんで?マジック「StdAfx.h」は何に使うの?
UPD
simple.cpp はこのように見えるようになりましたが、それでも同じエラーが発生します
#include "C:\c\usingHeader\usingHeader\stdafx.h"
#include <cstdlib>
#include <iostream>
#include "simple.h"
int nike2(int f)
{
return 0;
}