ヘッダーとヘッダー ガードについて理解できません。他の質問とその回答を読みましたが、Visual Studio 2013 でこれを機能させることはできません:
main.cpp
#include "stdafx.h"
#include <iostream>
#include "add.h"
int _tmain(int argc, _TCHAR* argv[]) {
std::cout << "3 + 4 = " << add(3, 4) << std::endl;
system("pause");
return 0;
}
add.cpp
#include "stdafx.h" //ADDED LATER; NOW WORKING (AND SEE QUESTION 2 BELOW)
#include "add.h" //ADDED LATER; NOR WORKING (AND SEE QUESTION 2 BELOW)
int add(int x, int y) {
return x + y;
}
add.h
#ifndef ADD_H
#define ADD_H
int add(int x, int y);
#endif
コンパイルすると、コンソール ウィンドウが画面上で点滅してから消えます。エラー リストには次のものが含まれます。
エラー 1 エラー LNK2019: 未解決の外部シンボル "int __cdecl add(int,int)" (?add@@YAHHH@Z) が関数 _wmain で参照されています c:\Users\Danny\documents\visual studio 2013\Projects\Addition Program\main \main.obj メイン
エラー 2 エラー LNK1120: 1 未解決の外部 c:\users\danny\documents\visual studio 2013\Projects\Addition Program\Debug\main.exe メイン
1. ヘッダーとヘッダー ガードはどのように機能しますか? #include によっての宣言を認識するadd.h方法がわかりますが、その定義をどのように見つけるのでしょうか?main.cppadd(int x, int y)
2. コードのどこが間違っていますか?
私のコードは現在コンパイル中です。コードがコンパイルされなかった理由は、Visual Studioのソリューション エクスプローラーの [ソースファイル]セクションと[ヘッダー ファイル]セクションからファイルを追加するのではなく、[ファイル] > [新規] > [ファイル... ] に移動してプロジェクトにファイルを追加していたためです。add.cpp ファイルにも追加する必要がありました。#include "stdafx.h