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