Форум русской поддержки ОС 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 писал с маленькой буквы
Неактивен