Fedora linux forum

Форум русской поддержки ОС Fedora linux

 

#1 2009-05-03 02:48:05

LuckyStr
Member
Зарегистрирован: 2008-12-17
Сообщений: 91

Make не хочет make

Есть 3 файла:


    1.cpp

    Код:

    #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.
Спасибо.


Это наш химический дом для печальных жителей Земли!

Неактивен

 

#2 2009-05-03 11:14:21

ash
Moderator
Откуда: Мурманск
Зарегистрирован: 2007-10-21
Сообщений: 347

Re: Make не хочет make

Может так?
fir.h

Код:

#ifndef FIR_H
#define FIR_H
int firs (int a);
#endif

http://img517.imageshack.us/img517/9199/belinuxkj0.png

Неактивен

 

#3 2009-05-03 20:23:57

LuckyStr
Member
Зарегистрирован: 2008-12-17
Сообщений: 91

Re: Make не хочет make

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


Это наш химический дом для печальных жителей Земли!

Неактивен