|
Boost Users : |
From: Brian Gaber (Brian.Gaber_at_[hidden])
Date: 2004-12-03 15:04:55
"Martin Lemieux" < <mailto:lemieux_at_[hidden]> lemieux<at>cae.com> wrote:
>
> As I suspected, those are linker errors! That means steps 1 and 2 worked. Now
> (step 3), you need to specify the directory where to find the boost libraries,
> as well as the lirbary file(s) for the linker to link with. At this point you
> have plenty of choices: static/dynamic, multi-thread or not, debug/release.
>
> 3a) You might have some of the following library files in your AIX
> [...]/boost/lib directory:
>
> boost_filesystem-AIX-mt-1_31.so
> boost_filesystem-AIX-mt-1_31.lib
> boost_filesystem-AIX-mt-gd-1_31.so
> boost_filesystem-AIX-mt-gd-1_31.lib
On AIX v5.2 here are the boost_filesystem* libraries I have under /usr/local/lib
libboost_filesystem-xlc-1_32.a
libboost_filesystem-xlc-1_32.so
libboost_filesystem-xlc-d-1_32.a
libboost_filesystem-xlc-d-1_32.so
libboost_filesystem-xlc-d.a
libboost_filesystem-xlc-d.so
libboost_filesystem-xlc-mt-1_32.a
libboost_filesystem-xlc-mt-1_32.so
libboost_filesystem-xlc-mt-d-1_32.a
libboost_filesystem-xlc-mt-d-1_32.so
libboost_filesystem-xlc-mt-d.a
libboost_filesystem-xlc-mt-d.so
libboost_filesystem-xlc-mt.a
libboost_filesystem-xlc-mt.so
libboost_filesystem-xlc.a
libboost_filesystem-xlc.so
> On your compiler command line, add "-L /usr/local/include/boost-1_32/boost/lib"
> (or make a symbolic link as you did for the include directory
> towards /usr/local/include/boost/lib and use this one instead, as you wish).
On AIX (maybe all unix's) boost libraries are found in /usr/local/lib
> Then (usually at the end of the command line) add the library file you like.
> May I the a static one (.lib). Your command line should look like:
No boost libraries with a .lib extension
> xlc++ -o simple_ls simple_ls.cpp -I /usr/local/include -L /usr/local/include/boost-1_32/boost/lib boost_filesystem-AIX-mt-1_31.lib
the actual xlc++ compiler command line that worked was:
xlc++ -o simple_ls simple_ls.cpp -I /usr/local/include -lboost_filesystem-xlc-1_32 -L/usr/local/lib
NOTE: after the -l the three letters "lib" are removed from the front of the actual library name.
> > 2b) On MSDEV6, add "c:\boost\include\boost-1_32" in your project settings. More specifically in the "C++" tab, under "Preprocessor" category (drop-down list), and at "Additional include directories:".
> >
> > I did this and I can now build, but I get a linker error:
> >
> > LINK : fatal error LNK1104: cannot open file "libboost_filesystem-vc6-sgd-
> 1_32.lib"
>
> 3b) On MSDEV6,
>
> i) add "libboost_filesystem-vc6-sgd-1_32.lib" in your project settings. More specifically in the "Link" tab, under "Input" category (drop-down list), and at "Object/Library modules:".
>
> ii) and add "c:\boost\include\boost-1_32\boost\lib" in "Additional library path:".
On my Windows 2000 the file "libboost_filesystem-vc6-sgd-1_32.lib" is found in c:\boost\lib
Martin, thanks for your help. I would have never got this working without your assistane.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net