Boost logo

Boost Users :

From: Graham Bull (calzakk_at_[hidden])
Date: 2008-08-23 15:02:51


Hi all,

I've got this really simple C++ program that's using the
Boost.Filesystem library:

    #include <iostream>
    #include <boost/filesystem.hpp>
    int main()
    {
        boost::filesystem::path pathname = "/usr/local/bin";
        std::cout << pathname.string() << std::endl;
        return 0;
    }

It compiles fine, and I can get it to link to use the shared object:

    g++ -I/usr/local/include/boost-1_35 -o test test.cpp
-lboost_filesystem-gcc42-mt-1_35

But I want to statically link instead. I've tried this and other
similar combinations:

    g++ -I/usr/local/include/boost-1_35 -o test test.cpp
-lboost_filesystem-gcc42-mt-s-1_35 -static -static-libgcc

and I'm always getting these linker errors:

    /tmp/ccoiFv2v.o: In function
`__static_initialization_and_destruction_0(int, int)':
    test.cpp:(.text+0x1dc): undefined reference to
`boost::system::get_system_category()'
    test.cpp:(.text+0x1e6): undefined reference to
`boost::system::get_posix_category()'
    test.cpp:(.text+0x1f0): undefined reference to
`boost::system::get_posix_category()'
    test.cpp:(.text+0x1fa): undefined reference to
`boost::system::get_system_category()'
    collect2: ld returned 1 exit status

I've built Boost in full and have got these Boost.Filesystem libraries
in /usr/local/lib:

    libboost_filesystem-gcc42-1_35.a
    libboost_filesystem-gcc42-1_35.so
    libboost_filesystem-gcc42-1_35.so.1.35.0
    libboost_filesystem-gcc42.a
    libboost_filesystem-gcc42-d-1_35.a
    libboost_filesystem-gcc42-d-1_35.so
    libboost_filesystem-gcc42-d-1_35.so.1.35.0
    libboost_filesystem-gcc42-d.a
    libboost_filesystem-gcc42-d.so
    libboost_filesystem-gcc42-mt-1_35.a
    libboost_filesystem-gcc42-mt-1_35.so
    libboost_filesystem-gcc42-mt-1_35.so.1.35.0
    libboost_filesystem-gcc42-mt.a
    libboost_filesystem-gcc42-mt-d-1_35.a
    libboost_filesystem-gcc42-mt-d-1_35.so
    libboost_filesystem-gcc42-mt-d-1_35.so.1.35.0
    libboost_filesystem-gcc42-mt-d.a
    libboost_filesystem-gcc42-mt-d.so
    libboost_filesystem-gcc42-mt-s-1_35.a
    libboost_filesystem-gcc42-mt-s.a
    libboost_filesystem-gcc42-mt-sd-1_35.a
    libboost_filesystem-gcc42-mt-sd.a
    libboost_filesystem-gcc42-mt.so
    libboost_filesystem-gcc42-s-1_35.a
    libboost_filesystem-gcc42-s.a
    libboost_filesystem-gcc42-sd-1_35.a
    libboost_filesystem-gcc42-sd.a
    libboost_filesystem-gcc42.so

I hope someone can help me because I just can't see what I'm doing wrong!

Graham


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