undefined reference to `boost::thread_resource_error::thread_resource_error()'

Hello, On ubuntu, I have a piece of software linking against the boost thread library. Linking with boost version 1.40 I don't have any problem, whereas switching to 1.41 I got the undefined reference to `boost::thread_resource_error::thread_resource_error()' In the sources I see that this constructor is now inlined and if I do nm -C -D libboost_thread.so | grep thread_resource_error from this (1.40) 0000ee80 T boost::thread_resource_error::thread_resource_error(int) 0000ee00 T boost::thread_resource_error::thread_resource_error() 0000ee40 T boost::thread_resource_error::thread_resource_error(int) 0000edc0 T boost::thread_resource_error::thread_resource_error() 0000f4c0 T boost::thread_resource_error::~thread_resource_error() 0000f500 T boost::thread_resource_error::~thread_resource_error() 0000f530 T boost::thread_resource_error::~thread_resource_error() 0000eec0 T boost::thread_resource_error::what() const 00013e00 V typeinfo for boost::thread_resource_error 0000ffc0 V typeinfo name for boost::thread_resource_error 00013d98 V vtable for boost::thread_resource_error I got this (1.41) 0000b6e0 W boost::thread_resource_error::~thread_resource_error() 0000b720 W boost::thread_resource_error::~thread_resource_error() 0000b480 W boost::thread_resource_error::what() const 0001282c V typeinfo for boost::thread_resource_error 0000ed00 V typeinfo name for boost::thread_resource_error 00012848 V vtable for boost::thread_resource_error The symbol is weak now. I should be not a problem, right? But I got the unresolved ref What is the best option to have my stuff compiled without the unresolved refs? Thanks Stefano

AMDG Stefano wrote:
On ubuntu, I have a piece of software linking against the boost thread library. Linking with boost version 1.40 I don't have any problem, whereas switching to 1.41 I got the
undefined reference to `boost::thread_resource_error::thread_resource_error()'
In the sources I see that this constructor is now inlined and if I do
nm -C -D libboost_thread.so | grep thread_resource_error
from this (1.40)
0000ee80 T boost::thread_resource_error::thread_resource_error(int) 0000ee00 T boost::thread_resource_error::thread_resource_error() 0000ee40 T boost::thread_resource_error::thread_resource_error(int) 0000edc0 T boost::thread_resource_error::thread_resource_error() 0000f4c0 T boost::thread_resource_error::~thread_resource_error() 0000f500 T boost::thread_resource_error::~thread_resource_error() 0000f530 T boost::thread_resource_error::~thread_resource_error() 0000eec0 T boost::thread_resource_error::what() const 00013e00 V typeinfo for boost::thread_resource_error 0000ffc0 V typeinfo name for boost::thread_resource_error 00013d98 V vtable for boost::thread_resource_error
I got this (1.41)
0000b6e0 W boost::thread_resource_error::~thread_resource_error() 0000b720 W boost::thread_resource_error::~thread_resource_error() 0000b480 W boost::thread_resource_error::what() const 0001282c V typeinfo for boost::thread_resource_error 0000ed00 V typeinfo name for boost::thread_resource_error 00012848 V vtable for boost::thread_resource_error
The symbol is weak now. I should be not a problem, right?
No, the constructor is not there. What you see is the destructor.
But I got the unresolved ref
What is the best option to have my stuff compiled without the unresolved refs?
Are you absolutely sure that you compiled with the 1.41 headers? In Christ, Steven Watanabe

I saw something like this in Linux too. The fix was to remove all the
old boost-1.40 libraries.
In fact I removed all the boost 1.40 and 1.41 libraries and header s
and reinstalled boost 1.40.
Andrew
On Sat, Dec 19, 2009 at 4:06 PM, Steven Watanabe
AMDG
Stefano wrote:
On ubuntu, I have a piece of software linking against the boost thread library. Linking with boost version 1.40 I don't have any problem, whereas switching to 1.41 I got the
undefined reference to `boost::thread_resource_error::thread_resource_error()'
In the sources I see that this constructor is now inlined and if I do
nm -C -D libboost_thread.so | grep thread_resource_error
from this (1.40)
0000ee80 T boost::thread_resource_error::thread_resource_error(int) 0000ee00 T boost::thread_resource_error::thread_resource_error() 0000ee40 T boost::thread_resource_error::thread_resource_error(int) 0000edc0 T boost::thread_resource_error::thread_resource_error() 0000f4c0 T boost::thread_resource_error::~thread_resource_error() 0000f500 T boost::thread_resource_error::~thread_resource_error() 0000f530 T boost::thread_resource_error::~thread_resource_error() 0000eec0 T boost::thread_resource_error::what() const 00013e00 V typeinfo for boost::thread_resource_error 0000ffc0 V typeinfo name for boost::thread_resource_error 00013d98 V vtable for boost::thread_resource_error
I got this (1.41)
0000b6e0 W boost::thread_resource_error::~thread_resource_error() 0000b720 W boost::thread_resource_error::~thread_resource_error() 0000b480 W boost::thread_resource_error::what() const 0001282c V typeinfo for boost::thread_resource_error 0000ed00 V typeinfo name for boost::thread_resource_error 00012848 V vtable for boost::thread_resource_error
The symbol is weak now. I should be not a problem, right?
No, the constructor is not there. What you see is the destructor.
But I got the unresolved ref
What is the best option to have my stuff compiled without the unresolved refs?
Are you absolutely sure that you compiled with the 1.41 headers?
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- ___________________________________________ Andrew J. P. Maclean Centre for Autonomous Systems The Rose Street Building J04 The University of Sydney 2006 NSW AUSTRALIA Ph: +61 2 9351 3283 Fax: +61 2 9351 7474 URL: http://www.acfr.usyd.edu.au/ ___________________________________________

Oops typo .. I meant I reinstalled boost 1.41 not 1.40.
On Sat, Dec 19, 2009 at 6:36 PM, Andrew Maclean
I saw something like this in Linux too. The fix was to remove all the old boost-1.40 libraries. In fact I removed all the boost 1.40 and 1.41 libraries and header s and reinstalled boost 1.40.
Andrew
On Sat, Dec 19, 2009 at 4:06 PM, Steven Watanabe
wrote: AMDG
Stefano wrote:
On ubuntu, I have a piece of software linking against the boost thread library. Linking with boost version 1.40 I don't have any problem, whereas switching to 1.41 I got the
undefined reference to `boost::thread_resource_error::thread_resource_error()'
In the sources I see that this constructor is now inlined and if I do
nm -C -D libboost_thread.so | grep thread_resource_error
from this (1.40)
0000ee80 T boost::thread_resource_error::thread_resource_error(int) 0000ee00 T boost::thread_resource_error::thread_resource_error() 0000ee40 T boost::thread_resource_error::thread_resource_error(int) 0000edc0 T boost::thread_resource_error::thread_resource_error() 0000f4c0 T boost::thread_resource_error::~thread_resource_error() 0000f500 T boost::thread_resource_error::~thread_resource_error() 0000f530 T boost::thread_resource_error::~thread_resource_error() 0000eec0 T boost::thread_resource_error::what() const 00013e00 V typeinfo for boost::thread_resource_error 0000ffc0 V typeinfo name for boost::thread_resource_error 00013d98 V vtable for boost::thread_resource_error
I got this (1.41)
0000b6e0 W boost::thread_resource_error::~thread_resource_error() 0000b720 W boost::thread_resource_error::~thread_resource_error() 0000b480 W boost::thread_resource_error::what() const 0001282c V typeinfo for boost::thread_resource_error 0000ed00 V typeinfo name for boost::thread_resource_error 00012848 V vtable for boost::thread_resource_error
The symbol is weak now. I should be not a problem, right?
No, the constructor is not there. What you see is the destructor.
But I got the unresolved ref
What is the best option to have my stuff compiled without the unresolved refs?
Are you absolutely sure that you compiled with the 1.41 headers?
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- ___________________________________________ Andrew J. P. Maclean Centre for Autonomous Systems The Rose Street Building J04 The University of Sydney 2006 NSW AUSTRALIA Ph: +61 2 9351 3283 Fax: +61 2 9351 7474 URL: http://www.acfr.usyd.edu.au/ ___________________________________________
-- ___________________________________________ Andrew J. P. Maclean Centre for Autonomous Systems The Rose Street Building J04 The University of Sydney 2006 NSW AUSTRALIA Ph: +61 2 9351 3283 Fax: +61 2 9351 7474 URL: http://www.acfr.usyd.edu.au/ ___________________________________________

Hi,
yes, you're right, those weak symbols are for the destructor. Probably I've
included the old headers and linked the new library.
Thanks for the help
Stefano
On Sat, Dec 19, 2009 at 6:06 AM, Steven Watanabe
AMDG
Stefano wrote:
On ubuntu, I have a piece of software linking against the boost thread library. Linking with boost version 1.40 I don't have any problem, whereas switching to 1.41 I got the
undefined reference to `boost::thread_resource_error::thread_resource_error()'
In the sources I see that this constructor is now inlined and if I do
nm -C -D libboost_thread.so | grep thread_resource_error
from this (1.40)
0000ee80 T boost::thread_resource_error::thread_resource_error(int) 0000ee00 T boost::thread_resource_error::thread_resource_error() 0000ee40 T boost::thread_resource_error::thread_resource_error(int) 0000edc0 T boost::thread_resource_error::thread_resource_error() 0000f4c0 T boost::thread_resource_error::~thread_resource_error() 0000f500 T boost::thread_resource_error::~thread_resource_error() 0000f530 T boost::thread_resource_error::~thread_resource_error() 0000eec0 T boost::thread_resource_error::what() const 00013e00 V typeinfo for boost::thread_resource_error 0000ffc0 V typeinfo name for boost::thread_resource_error 00013d98 V vtable for boost::thread_resource_error
I got this (1.41)
0000b6e0 W boost::thread_resource_error::~thread_resource_error() 0000b720 W boost::thread_resource_error::~thread_resource_error() 0000b480 W boost::thread_resource_error::what() const 0001282c V typeinfo for boost::thread_resource_error 0000ed00 V typeinfo name for boost::thread_resource_error 00012848 V vtable for boost::thread_resource_error
The symbol is weak now. I should be not a problem, right?
No, the constructor is not there. What you see is the destructor.
But I got the unresolved ref
What is the best option to have my stuff compiled without the unresolved refs?
Are you absolutely sure that you compiled with the 1.41 headers?
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (4)
-
Andrew Maclean
-
Stefano
-
Stefano S
-
Steven Watanabe