Since which boost-version is linking against boost-system required?
Hi, I have an application which compiles fine with boost-1.40 and 1.41 (global installation). When I try to compile that application on a system with a local (staged) installation of boost-1.46.0, it complains about undefined reference to `boost::system::get_system_category()' etc. So, now, it has to be linked also to boost-system via -lboost-system. Linking against boost_filesystem and boost_regex ist already specified. So far, so good. My question is now, since when is this required? Thank you. Best, Cedric
I have an application which compiles fine with boost-1.40 and 1.41 (global installation). When I try to compile that application on a system with a local (staged) installation of boost-1.46.0, it complains about undefined reference to `boost::system::get_system_category()' etc. So, now, it has to be linked also to boost-system via -lboost-system. Linking against boost_filesystem and boost_regex ist already specified. So far, so good. My question is now, since when is this required?
If your application uses Boost.System, you should link against it - whether you use 1.40 or 1.46. Perhaps your application uses some other boost library, which didn't use Boost.System in older version, but now it does. Maybe Boost.Asio?
On Thursday, 16. June 2011 12:26:35 Igor R wrote:
I have an application which compiles fine with boost-1.40 and 1.41 (global installation). When I try to compile that application on a system with a local (staged) installation of boost-1.46.0, it complains about undefined reference to `boost::system::get_system_category()' etc. So, now, it has to be linked also to boost-system via -lboost-system. Linking against boost_filesystem and boost_regex ist already specified. So far, so good. My question is now, since when is this required?
If your application uses Boost.System, you should link against it - whether you use 1.40 or 1.46. Perhaps your application uses some other boost library, which didn't use Boost.System in older version, but now it does. Maybe Boost.Asio?
I am not the author of this software and it is rather complex. I know that it links against Boost.Filesystem and Boost.Regex and that this is enough for boost-1.40 or 1.41 installations but seems to be not enough for boost-1.46.0. Searching for boost-related includes in the source-files yields the following: boost/algorithm/string.hpp boost/filesystem.hpp boost/graph/adjacency_list.hpp boost/graph/breadth_first_search.hpp boost/graph/connected_components.hpp boost/graph/filtered_graph.hpp boost/graph/graph_traits.hpp boost/graph/graph_utility.hpp boost/graph/graphviz.hpp boost/graph/johnson_all_pairs_shortest.hpp boost/graph/reverse_graph.hpp boost/graph/strong_components.hpp boost/graph/visitors.hpp boost/property_map.hpp boost/regex.hpp Does any of those require Boost.System nowadays? Thank you. Best, Cedric
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
On Thu, Jun 16, 2011 at 12:43 PM, Cedric Laczny
On Thursday, 16. June 2011 12:26:35 Igor R wrote:
I have an application which compiles fine with boost-1.40 and 1.41 (global installation). When I try to compile that application on a system with a local (staged) installation of boost-1.46.0, it complains about undefined reference to `boost::system::get_system_category()' etc. So, now, it has to be linked also to boost-system via -lboost-system. Linking against boost_filesystem and boost_regex ist already specified. So far, so good. My question is now, since when is this required?
If your application uses Boost.System, you should link against it - whether you use 1.40 or 1.46. Perhaps your application uses some other boost library, which didn't use Boost.System in older version, but now it does. Maybe Boost.Asio?
I am not the author of this software and it is rather complex. I know that it links against Boost.Filesystem and Boost.Regex and that this is enough for boost-1.40 or 1.41 installations but seems to be not enough for boost-1.46.0.
Does any of those require Boost.System nowadays?
Boost Filesystem requires Boost.System to report OS dependent errors. With Kind Regards, Ovanes
I am not the author of this software and it is rather complex. I know that it links against Boost.Filesystem and Boost.Regex and that this is enough for boost-1.40 or 1.41 installations but seems to be not enough for boost-1.46.0. Searching for boost-related includes in the source-files yields the following: boost/algorithm/string.hpp boost/filesystem.hpp <...>
Boost.Filesystem definitly uses Boost.System. (Actually, any library that deals with error codes uses Boost.System.)
On Thursday, 16. June 2011 13:02:35 Igor R wrote:
I am not the author of this software and it is rather complex. I know that it links against Boost.Filesystem and Boost.Regex and that this is enough for boost-1.40 or 1.41 installations but seems to be not enough for boost-1.46.0. Searching for boost-related includes in the source-files yields the following: boost/algorithm/string.hpp boost/filesystem.hpp
<...>
Boost.Filesystem definitly uses Boost.System. (Actually, any library that deals with error codes uses Boost.System.)
Ok, good to know that. Thank you. But how come that it seems not to be required to link against Boost.System when using boost-1.40 or boost-1.41 even though Boost.Filesystem is used and also included during linking? Has this requirement been introduced only recently? If so, it would be interesting to know since when exactly. Best, Cedric
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
But how come that it seems not to be required to link against Boost.System when using boost-1.40 or boost-1.41 even though Boost.Filesystem is used and also included during linking? Has this requirement been introduced only recently? If so, it would be interesting to know since when exactly.
It depends on Boost.System since 1.35 or so... So I have no idea how you linked without it.
But how come that it seems not to be required to link against Boost.System when using boost-1.40 or boost-1.41 even though Boost.Filesystem is used and also included during linking? Has this requirement been introduced only recently? If so, it would be interesting to know since when exactly.
By the way, perhaps your toolset supports auto-link, so the boost.system in the "global installation" was just automatically linked?
On Thu, Jun 16, 2011 at 1:39 PM, Igor R
But how come that it seems not to be required to link against Boost.System when using boost-1.40 or boost-1.41 even though Boost.Filesystem is used and also included during linking? Has this requirement been introduced only recently? If so, it would be interesting to know since when exactly.
By the way, perhaps your toolset supports auto-link, so the boost.system in the "global installation" was just automatically linked?
Just take a look at previosly produced binaries, if the Boost.System symbol(s) is(are) there... smth. like: nm binary_name | grep some_expected_symbol_name_from_boost_system Than you will definitely know if Boost.System (somehow) linked with produced executable as well. With Kind Regards, Ovanes
On Thursday, 16. June 2011 13:39:50 Igor R wrote:
But how come that it seems not to be required to link against Boost.System when using boost-1.40 or boost-1.41 even though Boost.Filesystem is used and also included during linking? Has this requirement been introduced only recently? If so, it would be interesting to know since when exactly.
By the way, perhaps your toolset supports auto-link, so the boost.system in the "global installation" was just automatically linked?
Good point, thank you. Actually, I was expecting libboost_system.so to appear next to the other libboost_* entries in the ldd-output, but it appeared at the bottom (which I skipped, unfortunately). So, apparently, you are right and it is automatically linked. Best, Cedric
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (3)
-
Cedric Laczny
-
Igor R
-
Ovanes Markarian