Форум русской поддержки ОС Fedora linux
Есть 3 файла:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include "fir.h"
using namespace std;
int main (int argc, char ** argv)
{
int i=argc-1;
cout<<i<<endl;
while (i>0){
cout<<argv[i]<<endl;
i--;
}
i=firs (argc);
cout<<i<<endl;
return 0;
}fir.cpp
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include "fir.h"
using namespace std;
int firs (int a)
{
int c=1;
for (int b=0; b<a;b++)c=c*a;
return c;
}fir.h
int firs (int a);
и есть к ним makefile:
#makefile 1 1: fir.o 1.o gcc -o 1 fir.o 1.o fir.o: fir.cpp fir.h g++ -c fir.cpp 1.o: 1.cpp g++ -c 1.cpp clean: rm -f *.o
При сборке пишет так:
$ make 1 g++ 1.cpp -o 1 /tmp/ccLP9Kez.o: In function `main': 1.cpp:(.text+0xe1): undefined reference to `firs(int)' collect2: выполнение ld завершилось с кодом возврата 1 make: *** [1] Ошибка 1
А при ручной сборке все нормально, если это может как-то повлиять, то у меня fedora 10.
Спасибо.
Неактивен
Может так?
fir.h
#ifndef FIR_H #define FIR_H int firs (int a); #endif

Неактивен
Спасибо, но косяк был в названии файла, я makefile писал с маленькой буквы
Неактивен