que he estado tratando de hacer algunas aplicaciones que todos dependen de la misma biblioteca y librerías dinámicas eran lo primero que pensé: Así que empecé a escribir la "Biblioteca":¿Por qué no enlaza g ++ con la biblioteca dinámica que creo?
/* ThinFS.h */
class FileSystem {
public:
static void create_container(string file_name); //Creates a new container
};
/* ThinFS.cpp */
#include "ThinFS.h"
void FileSystem::create_container(string file_name) {
cout<<"Seems like I am going to create a new file called "<<file_name.c_str()<<endl;
}
I a continuación, compilar la "biblioteca"
g++ -shared -fPIC FileSystem.cpp -o ThinFS.o
entonces escribió rápidamente un archivo que utiliza la Biblioteca:
#include "ThinFS.h"
int main() {
FileSystem::create_container("foo");
return (42);
}
luego trató de compilar que con
g++ main.cpp -L. -lThinFS
Pero no va a compilar con el siguiente error:
/usr/bin/ld: cannot find -lThinFS
collect2: ld returned 1 exit status
Creo que me falta algo muy obvio, por favor me ayude :)
Gracias, el lib faltaba en la parte delantera (.o en lugar de .so solo fue un error tipográfico) :) – lazlow