[ Burgos @ 03.02.2005. 15:12 ] @
Moze li mi neko pomoci kako da kompajliram source da bi dobio .a fajl i kako da sve to na kraju povezem u jednom header fajlu
[ leka @ 03.02.2005. 16:43 ] @
Burgos, stvar je opisana ovde: http://www.faqs.org/docs/Linux-HOWTO/Program-Library-HOWTO.html , a GNU ar(chiver) ovde: http://www.nu6.org/_/man/index.php/man/ar/1. Manual za ranlib alat: http://www.nu6.org/_/man/index.php/man/ranlib/1 .

Generalno, raditi sa statickim bibliotekama (.a) je (malo) lakse nego rad sa dinamickim bibliotekama (.so) , dok je princip (skoro) isti - gomilu objektnih fajlova (.o) "trpas" u jedan jedini fajl da bi ih kasnije lako i efikasno koristio na nekoj drugoj masini i u raznoraznim aplikacijama...
[ Burgos @ 03.02.2005. 18:15 ] @
Hvala ti mnogo!
[ Burgos @ 03.02.2005. 18:53 ] @
Nesto ne valja, Dejane!
Kada pokusam da kompajliram source koji koristi moj lib ne radi. Mozda nisam pokrenuo g++ sa dobrim parametrima?

Evo sta se nalazi u libu:
string2int.h
Code:
 #include <string>
class klasa
{
    public:
     int conversion(std::string _convert);
};

string2int.cpp
Code:
#include <iostream>
#include <sstream>
#include "string2int.h"

using namespace std;

     int conversion(string _convert)
    {
        int _number;
        stringstream _ss;
        _ss << _convert;
        _ss >> _number;
        return _number;
}


ovo kompajliram sa
g++ -o string2int.o string2int.h -wall -g -c
sve to skupim lib.a sa
ar rsc string2int.a string2int.o
a fajl koji hocu da kompajliram, a koji koristi biblioteku kompajliram sa:
g++ -o fajl fajl.cpp -L. string2int.a
i dobijem ovu poruku:
fajl.cpp: In function `int main(int, char**)':
fajl.cpp:10: error: cannot call member function `int klasa::conversion(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' without object
klasa::conversion(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' without object