作业要求:编写一个由两个源文件组成的程序。第一个(Main.c)包含main()函数,并为变量i赋值。第二个源文件(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;
}print.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时,它显示:链接器错误未定义对'print(int)‘的引用
为什么它不接受我在print.cpp中对void print (int )的定义,并通过标头print.h引用它?谢谢!
发布于 2012-10-12 11:11:32
不确定你使用的是什么编译器,但我得到了它在Linux/gcc上的工作:
$ gcc main.cpp print.cpp -o test
$ ./test
$ 4
$https://stackoverflow.com/questions/12851586
复制相似问题