J'ai essayé de faire des applications qui seraient toutes sur la même bibliothèque, et les bibliothèques dynamiques ont été ma première pensée: Je commence à écrire la « Bibliothèque »:Pourquoi g ++ n'est-il pas lié à la bibliothèque dynamique que je crée?
/* 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;
}
Je puis compilez la « Bibliothèque »
g++ -shared -fPIC FileSystem.cpp -o ThinFS.o
Je puis rapidement écrit un fichier qui utilise la bibliothèque:
#include "ThinFS.h"
int main() {
FileSystem::create_container("foo");
return (42);
}
J'ai ensuite essayé de compiler cela avec
g++ main.cpp -L. -lThinFS
Mais il ne sera pas compilé avec l'erreur suivante:
/usr/bin/ld: cannot find -lThinFS
collect2: ld returned 1 exit status
Je pense que je manque quelque chose très évident, s'il vous plaît aidez-moi :)
Merci, la lib était absent à l'avant (.o au lieu de .so était juste une faute de frappe) :) – lazlow