470,815 Members | 1,260 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,815 developers. It's quick & easy.

Compiling c++ programs with Boost-library on Ubuntu

Hello out there :-)

I'm new to c++, coming from Java, and trying to learn the basics of the
language and all that, basically just for fun. :-)

So, when once I played around with c++ a bit i found out I didn't
really have any ways of looking at directories.
So, I looked around and found the boost library, which seems pretty
cool. However, I seem to be unable to compile anything using these
libraries.

For instance, the following example program from the boost site:
http://www.boost.org/libs/filesystem.../simple_ls.cpp
when compiled by me:
>g++ simple_ls.cpp -o simple_ls
produces the following error:
(WARNING! Large snippet coming up!)

soren@soren-laptop:~$ g++ simple_ls.cpp -o simple_ls
/tmp/ccDxvNVJ.o: In function `main':
simple_ls.cpp:(.text+0x89): undefined reference to
`boost::filesystem::initial_path()'
simple_ls.cpp:(.text+0xb7): undefined reference to
`boost::filesystem::native(std::basic_string<char,
std::char_traits<char>, std::allocator<char const&)'
simple_ls.cpp:(.text+0xc6): undefined reference to
`boost::filesystem::path::path(char const*, bool
(*)(std::basic_string<char, std::char_traits<char>,
std::allocator<char const&))'
simple_ls.cpp:(.text+0xd8): undefined reference to
`boost::filesystem::system_complete(boost::filesys tem::path const&)'
simple_ls.cpp:(.text+0x17a): undefined reference to
`boost::filesystem::exists(boost::filesystem::path const&)'
simple_ls.cpp:(.text+0x193): undefined reference to
`boost::filesystem::path::native_file_string() const'
simple_ls.cpp:(.text+0x208): undefined reference to
`boost::filesystem::is_directory(boost::filesystem ::path const&)'
simple_ls.cpp:(.text+0x222): undefined reference to
`boost::filesystem::path::native_directory_string( ) const'
simple_ls.cpp:(.text+0x2b5): undefined reference to
`boost::filesystem::is_directory(boost::filesystem ::path const&)'
simple_ls.cpp:(.text+0x2d7): undefined reference to
`boost::filesystem::path::leaf() const'
simple_ls.cpp:(.text+0x34a): undefined reference to
`boost::filesystem::path::leaf() const'
simple_ls.cpp:(.text+0x3f1): undefined reference to
`boost::filesystem::path::leaf() const'
simple_ls.cpp:(.text+0x56a): undefined reference to
`boost::filesystem::path::native_file_string() const'
/tmp/ccDxvNVJ.o: In function
`boost::filesystem::directory_iterator::directory_ iterator(boost::filesystem::path
const&)':
simple_ls.cpp:(.text._ZN5boost10filesystem18direct ory_iteratorC1ERKNS0_4pathE[boost::filesystem::directory_iterator::directory_i terator(boost::filesystem::path
const&)]+0x2b): undefined reference to
`boost::filesystem::detail::dir_itr_init(boost::sh ared_ptr<boost::filesystem::detail::dir_itr_imp>&,
boost::filesystem::path const&)'
/tmp/ccDxvNVJ.o: In function
`boost::filesystem::directory_iterator::dereferenc e() const':
simple_ls.cpp:(.text._ZNK5boost10filesystem18direc tory_iterator11dereferenceEv[boost::filesystem::directory_iterator::dereference ()
const]+0xd): undefined reference to
`boost::filesystem::detail::dir_itr_dereference(bo ost::shared_ptr<boost::filesystem::detail::dir_itr _imp>
const&)'
/tmp/ccDxvNVJ.o: In function
`boost::filesystem::directory_iterator::increment( )':
simple_ls.cpp:(.text._ZN5boost10filesystem18direct ory_iterator9incrementEv[boost::filesystem::directory_iterator::increment()]+0xd):
undefined reference to
`boost::filesystem::detail::dir_itr_increment(boos t::shared_ptr<boost::filesystem::detail::dir_itr_i mp>&)'
collect2: ld returned 1 exit status

I asked around a bit, and was told I didn't link the boost-libs
correctly, and to use something like:
>g++ simple_ls.cpp -o simple_ls -lboost/filesystem
but that produces:
soren@soren-laptop:~$ g++ simple_ls.cpp -o simple_ls -lboost/filesystem
/usr/bin/ld: cannot find -lboost/filesystem
collect2: ld returned 1 exit status

Basically, not only do I know why this fails - or why I need it :-D -
nor do I know how to about fixing it :-)

Are there any nice tutorials out there dealing with this sort of thing
that I've been unable to find?

Thx in advance,

/Søren

Nov 29 '06 #1
2 8559
so************@gmail.com wrote:
I asked around a bit, and was told I didn't link the boost-libs
correctly, and to use something like:
>>g++ simple_ls.cpp -o simple_ls -lboost/filesystem
but that produces:
soren@soren-laptop:~$ g++ simple_ls.cpp -o simple_ls -lboost/filesystem
/usr/bin/ld: cannot find -lboost/filesystem
collect2: ld returned 1 exit status

Basically, not only do I know why this fails
Try -lboost_filesystem
- or why I need it :-D -
Because you need to link against the boost_filesystem library.
nor do I know how to about fixing it :-)
have a look into /usr/lib/ and search for somethig with a name that starts
with libboost_filesystem. Remove the '.so' part at the end and the 'lib' at
the start, and you have what needs to follow the -l.
Are there any nice tutorials out there dealing with this sort of thing
that I've been unable to find?
I'd expect the boost documentation itself to contain something about that.
Nov 29 '06 #2

<so************@gmail.comschrieb im Newsbeitrag
news:11**********************@j44g2000cwa.googlegr oups.com...
Hello out there :-)

I'm new to c++, coming from Java, and trying to learn the basics of the
language and all that, basically just for fun. :-)

So, when once I played around with c++ a bit i found out I didn't
really have any ways of looking at directories.
So, I looked around and found the boost library, which seems pretty
cool. However, I seem to be unable to compile anything using these
libraries.

seems to me that u forgot to download and include some files while compiling
i use a ide with project support, don't know nothing about makefiles, so
creating a project and adding files - especially those included in " " - and
perhaps some libs - also look up the dependencies in .hpp - should help.
i have the same problems this antique behavior of c++ is verry confusing to
me.
Nov 29 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Nikola Milutinovic | last post: by
11 posts views Thread by Carramba | last post: by
19 posts views Thread by Simon Faulkner | last post: by
4 posts views Thread by Gary Wessle | last post: by
2 posts views Thread by sterten | last post: by
1 post views Thread by Noah Roberts | last post: by
10 posts views Thread by Tomás Ó hÉilidhe | last post: by
4 posts views Thread by anon538 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.