Thread overview | |||||
---|---|---|---|---|---|
|
September 12, 2002 Undefined symbols using stlport map | ||||
---|---|---|---|---|
| ||||
Greetings, I have encountered the following problem: when using the map class from stlport (and these seem to be functions defined in stl\_tree.h), when building from the IDDE, I get the following errors on linking: Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined ?_M_increment@?$_Rb_global@_N@@SAPAU_Rb_tree_node_base@@PAU2@@Z Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined ?_M_decrement@?$_Rb_global@_N@@SAPAU_Rb_tree_node_base@@PAU2@@Z Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined ?_Rebalance@?$_Rb_global@_N@@SAXPAU_Rb_tree_node_base@@AAPAU2@@Z The same file builds successfully from the command line, even without specifying the stlport static lib (this seems to be required only when using streams). It also builds successfully if I include the dynamic version of the library instead of the static one in the IDDE. Any ideas? Thanks, Dimitri http://www.universalstudyhelper.com Universal Study Helper - the quick and easy way to learn any subject |
September 13, 2002 Re: Undefined symbols using stlport map | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dimitri Kaparis | On Thu, 12 Sep 2002 21:24:51 +0000 (UTC), Dimitri Kaparis wrote: > I have encountered the following problem: when using the map class from stlport (and these seem to be functions defined in stl\_tree.h), when building from the IDDE, I get the following errors on linking: > > Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined > ?_M_increment@?$_Rb_global@_N@@SAPAU_Rb_tree_node_base@@PAU2@@Z > Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined > ?_M_decrement@?$_Rb_global@_N@@SAPAU_Rb_tree_node_base@@PAU2@@Z > Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined > ?_Rebalance@?$_Rb_global@_N@@SAXPAU_Rb_tree_node_base@@AAPAU2@@Z > > The same file builds successfully from the command line, even without specifying the stlport static lib (this seems to be required only when using streams). I guess you are compiling with -D_STLP_NO_NEW_IOSTREAMS from the command line (but not from the IDDE). The reason it doesn't work without _STLP_NO_NEW_IOSTREAMS is that DM doesn't support explicit template instantiation and therefore some template instantiations are currently missing from the STLport libraries (but when compiling with _STLP_NO_NEW_IOSTREAMS these STLport libraries aren't needed). bye, Christof -- http://cmeerw.org JID: cmeerw@jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net? |
September 13, 2002 Re: Undefined symbols using stlport map | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christof Meerwald | In article <alsa0g$12mc$1@digitaldaemon.com>, Christof Meerwald says... > >On Thu, 12 Sep 2002 21:24:51 +0000 (UTC), Dimitri Kaparis wrote: >> I have encountered the following problem: when using the map class from stlport (and these seem to be functions defined in stl\_tree.h), when building from the IDDE, I get the following errors on linking: >> >> Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined >> ?_M_increment@?$_Rb_global@_N@@SAPAU_Rb_tree_node_base@@PAU2@@Z >> Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined >> ?_M_decrement@?$_Rb_global@_N@@SAPAU_Rb_tree_node_base@@PAU2@@Z >> Error: D:\MYPROJECTS\TEST\Main.OBJ(Main) (1293653086): Symbol Undefined >> ?_Rebalance@?$_Rb_global@_N@@SAXPAU_Rb_tree_node_base@@AAPAU2@@Z >> >> The same file builds successfully from the command line, even without specifying the stlport static lib (this seems to be required only when using streams). > >I guess you are compiling with -D_STLP_NO_NEW_IOSTREAMS from the command line (but not from the IDDE). Actually I build from the command line without specifying any additional parameters, like: sc test.cpp It does not seem this defines _STLP_NO_NEW_IOSTREAMS because if I try it with a file that uses streams and I don't specify the stlport lib, I still get a bunch of unresolved symbols at linking. I can use map, however without any problems - not so from the IDDE. Now I have tried defining _STLP_NO_NEW_IOSTREAMS in the project settings in IDDE and this indeed solves the problem with map and also I can use iostreams without linking with the stlport lib. However this also doesn't explain why I don't get these errors when linking with the dynamic library? Thanks, Dimitri |
Copyright © 1999-2021 by the D Language Foundation