Назначение говорит: Напишите программу, состоящую из двух исходных файлов. Первая (Main.c) содержит функцию main() и дает переменную i значение. Второй исходный файл (Print.c) умножает i на 2 и печатает его. Print.c содержит функцию print(), которую можно вызвать из main().Неопределенная ссылка на 'print (int)' [Ошибка компоновщика]
В моей попытке сделать это задание, я создал три файла: 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, он говорит: [L inker error] undefined ссылка на 'print (int)'
Почему он не принимает мое определение void print (int i) в print.cpp и ссылается на него через заголовок print.h? Благодаря!
Как вы связь? Это может быть так же просто, как забыть связать в print.o. –
Вам не нужен 'extern', так как параметр' i' является параметром. –
Цените помощь, все! – JZL