[omniNotify] Build Problems with Visual Studio 2008

Emmanuel TAUREL taurel at esrf.fr
Thu Nov 27 07:57:24 GMT 2008


Hi Jeffrey,

We are also using omniNotify mostly on Linux but from time to time on 
Windows as well.
Obviously, we are interested by your modifications.
Unfortunately, I can't answer to your questions about "how to deliver them"
Is there anybody with SourceForge right to write into the project still 
listening on this mailing list ?

Have a nice day

Emmanuel Taurel

Lewis, Jeffrey G wrote:
> I was able to fix my problem.  It was quite a learning experience.
> I figured out that the omniOrb makefiles determine what symbols to
> export from a given DLL by extracting symbols from the static library.
> In particular, by doing a dumpbin on the static library, and then
> sorting and grepping out symbols they don't want.  It looked like
> all the symbols that were giving me problems were instantiations of 
> things from the C++ standard template library.  I added an
> extra line in win32.mk to grep out symbols with "@std@@" in them, i.e.
> symbols from the std:: namespace.  Apparently Visual Studio 2008 puts
> more symbols into the static library than previous versions of Visual Studio.
>
> I also modified about a dozen files because Visual Studio 2008 won't accept
>    #include <iostream.h>
> but rather only accepts
>    #include <iostream>
>
> Anybody want my modifications?  If so, how should I deliver them?
>
> -------------------------------------------------------------------
>
> From: omninotify-list-bounces at omniorb-support.com [mailto:omninotify-list-bounces at omniorb-support.com] On Behalf Of Lewis, Jeffrey G
> Sent: Monday, October 27, 2008 9:51 PM
> To: omninotify-list at omniorb-support.com
> Subject: [omniNotify] Build Problems with Visual Studio 2008
>
> I've been trying to build and run omniNotify 2.1 with Visual Studio 2008 (aka Visual Studio 9.0), and have been having problems.  I fixed the compile errors changing "#include <iostream.h>" to "#include <iostream>" and putting in "using namespace std;" where needed.  However, in trying to build the shared libraries (and shared debug libraries), I get errors from the linker about undefined symbols.  I have explicitly forced "msvcprt.lib" into the linker command, but I get the same set of undefined symbols.  I've got some of the undefined symbols (and the commands) down below.  I was able to find these symbols in msvcurt.lib (I did a brute force findstr on all the libraries in the same directory as the C++ runtime library).  But that library is for Microsoft's "Common Language Runtime".  How can I build so that I don't need those symbols?:
>
> + ../../../../bin/x86_win32/linkwrapper -gnuwin32 -out:shared/COSNotify413_vc9_rt.dll -DLL -nologo -DEBUG -def:shared/COSNotify4.def -IMPLIB:shared/COSNotify413_rt.lib -libpath:../../../../lib/x86_win32 shared/RDIInteractive.o shared/ChannelAdmin_i.o shared/corba_wrappers_impl.o shared/CosEventProxy.o shared/CosNfyUtils.o shared/CosNotification.o shared/EventChannel_i.o shared/FilterAdmin_i.o shared/Filter_i.o shared/omniNotify.o shared/ProxyConsumer.o shared/ProxySupplier.o shared/RDI.o shared/RDIstrstream.o shared/RDIChannelUtil.o shared/RDIConfig.o shared/RDIConstraint.o shared/RDIDynamicEval.o shared/RDIEval.o shared/RDIEventQueue.o shared/RDINotifQueue.o shared/RDINotifServer.o shared/RDIOplocks.o shared/RDIOpSeq.o shared/RDIParser_l.o shared/RDIParser_y.o shared/RDIRVM.o shared/RDIRVMPool.o shared/RDIStaticEval.o shared/RDITimeWrappers.o shared/RDITypeMap.o omniORB413_rt.lib omniDynamic413_rt.lib omnithread34_rt.lib ws2_32.lib mswsock.lib advapi32.lib COS413_rt.lib COSDynamic413_rt.lib AttNotification413_rt.lib msvcprt.lib msvcrt.lib shared/COSNotify413_vc9_rt.res
>
> shared\COSNotify4.def(1) : warning LNK4093: Drive/Directory component ignored in 'LIBRARY' statement
>
>    Creating library shared/COSNotify413_rt.lib and object shared/COSNotify413_rt.exp
>
> COSNotify413_rt.exp : error LNK2001: unresolved external symbol "char * __cdecl std::_Allocate<char>(unsigned int,char *)" (??$_Allocate at D@std@@YAPADIPAD at Z)
>
> COSNotify413_rt.exp : error LNK2001: unresolved external symbol "struct std::_Secure_char_traits_tag __cdecl std::_Char_traits_cat<struct std::char_traits<char> >(void)" (??$_Char_traits_cat at U?$char_traits at D@std@@@std@@YA?AU_Secure_char_traits_tag at 0@XZ)
>
> COSNotify413_rt.exp : error LNK2001: unresolved external symbol "char * __cdecl std::_Traits_helper::copy_s<struct std::char_traits<char> >(char *,unsigned int,char const *,unsigned int)" (??$copy_s at U?$char_traits at D@std@@@_Traits_helper at std@@YAPADPADIPBDI at Z)
>
> COSNotify413_rt.exp : error LNK2001: unresolved external symbol "char * __cdecl std::_Traits_helper::copy_s<struct std::char_traits<char> >(char *,unsigned int,char const *,unsigned int,struct std::_Secure_char_traits_tag)" (??$copy_s at U?$char_traits at D@std@@@_Traits_helper at std@@YAPADPADIPBDIU_Secure_char_traits_tag at 1@@Z)
>
> .
> .
> .
> shared\COSNotify413_vc9_rt.dll : fatal error LNK1120: 25 unresolved externals
>
>
>
> _______________________________________________
> omninotify-list mailing list
> omninotify-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omninotify-list
>
>   






More information about the omninotify-list mailing list