2

作业说:编写一个包含两个源文件的程序。第一个 (Main.c) 包含 main() 函数并给变量 ia 值。第二个源文件 (Print.c) 将 i 乘以 2 并打印它。Print.c 包含可以从 main() 调用的函数 print()。

在我尝试完成这项任务时,我创建了三个文件: 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);
}

打印.h:

#ifndef GLOBAL_H // head guards
#define GLOBAL_H

void print(int i);

#endif

我编译了 print.cpp,当我尝试编译和运行 main.cpp 时,它说: [链接器错误] 未定义对 'print(int)' 的引用

为什么它不接受我在 print.cpp 中对 void print (int i) 的定义并通过标题 print.h 引用它?谢谢!

4

1 回答 1

2

不确定你使用的是什么编译器,但我让它在 Linux/gcc 上工作:

$ gcc main.cpp print.cpp -o test
$ ./test 
$ 4 
$
于 2012-10-12T03:11:31.547 回答