Bonjour.

Je suis actuellement sous Linux Ubuntu 9.04, et je code à l'aide de l'IDE QtCreator.
Je souhaiterais pouvoir utiliser la librairie Boost dans cet IDE.

Je me suis donc orienté dans un premier temps vers la documentation de boost :
http://www.boost.org/doc/libs/1_39_0...-variants.html

L'installation se passe sans problème, en suivant la doc, je fait le premier test proposé. Il consiste à utiliser le header "boost/lambda/lambda.hpp" afin de faire un simple programme de multiplication. Jusque là, aucun problème, mon QtCreator trouve correctement ce fameux header, le programme compile, et il fonctionne.

Pour ceux qui connaissent un peu boost, vous êtes au courant que certaines librairies nécessitent une compilation séparée. Par exemple :

* Boost.Filesystem
* Boost.IOStreams
* Boost.ProgramOptions
* Boost.Python
[...]

Je m'intéresse ici à Boost.Filesystem. J'ai déjà eu l'occasion de toucher a boost, mais la compilation se faisait en mode console, via gcc. A l'époque, en mode console, je n'avais aucun soucis avec l'utilisation de Filesystem.

J'ai donc compiler ces fameuses librairies, et une fois tout ça terminé, j'ai voulu tester via QtCreator. Malheureusement, je rencontre quelques difficultés suite a l'utilisation des méthodes proposées par Filesystem.

Je vous colle le code que j'utilise pour ce test, ainsi que le contenu de mon .pro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
#include <boost/filesystem.hpp>
#include <iostream>
 
using namespace std;
 
namespace bfs = boost::filesystem;
 
int main(void)
{
        bfs::path p("/dev/sda1");
        bfs::space_info infos;
 
 
        if(exists(p))
        {
                cout<<"Open" <<endl;
                bfs::space("/dev/sda1");
 
                cout<<"Capacity  = " <<infos.capacity <<endl;
                cout<<"Free      = " <<infos.free <<endl;
                cout<<"Available = " <<infos.available <<endl;
        }
        else
        {
                cout<<"Error open" <<endl;
        }
 
        return 0;
}
Et le .pro :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
QT       -= gui
 
TARGET = essaiboost
CONFIG   += console
CONFIG   -= app_bundle
INCLUDEPATH += /usr/share/boost_1_39_0
TEMPLATE = app
SOURCES += main.cpp
Le message d'erreur de QtCreator est le suivant :
main.cpp::-1: error: undefined reference to `boost::system::get_system_category()'
Pour information, mes headers boost du type .hpp sont dans /usr/share/boost_1_39_0/boost/
Et mes librairies .so / .a sont dans /usr/share/boost_1_39_0/stage/lib/

Comment puis-je faire pour utiliser les méthodes proposées par FileSysteme ?
Merci de votre aide.

Cordialement,
PKO