課題の内容: 2 つのソース ファイルから構成されるプログラムを作成します。最初の (Main.c) には main() 関数が含まれており、変数 ia の値を指定します。2 番目のソース ファイル (Print.c) は、i を 2 倍して出力します。Print.c には、main() から呼び出すことができる関数 print() が含まれています。
この課題を実行するために、次の 3 つのファイルを作成しました: main.cpp
#include <stdio.h>
#include "print.h"
using namespace std;
// Ex 1-5-3
// Global variable
int i = 2;
int main() {
print(i);
return 0;
}
印刷.cpp:
#include <stdio.h>
#include "print.h"
using namespace std;
// Ex 1-5-3
// Fetch global variable from main.cpp
extern int i;
void print(int i) {
printf("%d", 2*i);
}
print.h:
#ifndef GLOBAL_H // head guards
#define GLOBAL_H
void print(int i);
#endif
print.cpp をコンパイルし、main.cpp をコンパイルして実行しようとすると、次のように表示されます: [Linker error] undefined reference to 'print(int)'
print.cpp で void print (int i) の私の定義を受け入れず、ヘッダー print.h を介して参照しないのはなぜですか? ありがとう!