There is something very screwy going on. I found an error in my release mode build. I said
_SECURE_SCL_THROWS=1 _SECURE_SCL=1 which I am not supposed to do in release mode. I removed this and rebuilt. The error mutated slightly but is still there. This shows that the problem is to do with my build. But I would still appreciate any help/insight. I am wondering if I need to remove those macros from the build of the APR components. I thought the APR was all coded in C, so how could this make any difference? Not sure. All opinions welcome. Another thing - the size of the release mode library is HUGE: 636 MB, as opposed to 155 MB in Debug mode. Why is there such a huge difference? And why this way around. I would be grateful if anyone would report on how big their debug and release libraries are. Checking some file sizes I see that the object code files in the Release directory are huge. The largest object file in debug mode is 928 KB. In Release mode the largest object file (for a different source file as it happens) is 2228 KB. Yet one more thing: I can run nm on the debug lib under cygwin and all is well. Running nm on the one built in release mode gives lots of warnings about bad object code. The symbols are produced but those warning are very worrying. The message says: File format not recognised. Doing an nm on an individual object file gives: File truncated. Regards, Andrew Marlow Internet tabish...@gmail.com 05/07/2010 16:30 Please respond to users@activemq.apache.org To users@activemq.apache.org cc Subject Re: activemq-cpp problems with VS 2005 in Release mode On Mon, 2010-07-05 at 16:07 +0100, andrew.mar...@uk.bnpparibas.com wrote: > I have built version 3.2.1 of amq-cpp and have a serious problem when > using release mode. Debug mode is just fine. > > I have built apr, apr-iconv, apr-util and expat from source. > > I have added the following macros to all builds: > > WIN32 > _WINDOWS > NOMINMAX > _SECURE_SCL_THROWS=1 > _SECURE_SCL=1 > _CRT_SECURE_NO_DEPRECATE > _CRT_NONSTDC_NO_DEPRECATE > _MBCS > _VC80_UPGRADE=0x0600 > > I have built the cpp example that comes with amq-cpp. This works fine in > release mode. > > When my app starts up it blows up with: > > invalid map/set<T> argument. > > Any idea what this means? It blows up before it even enters any amq-cpp > code. But the problem only happens when linking with amq-cpp and only in > release mode. > > I am on Windows-XP (SP3) using VS 2005 (SP2). > > Regards, > > Andrew Marlow You should ensure that you are building your app using the correct runtime library, the amqcpp library requires the multithreaded dll version of the runtime. Or check that you aren't linking the debug version of the amqcpp library with your release build. Regards -- Tim Bish Open Source Integration: http://fusesource.com ActiveMQ in Action: http://www.manning.com/snyder/ Follow me on Twitter: http://twitter.com/tabish121 My Blog: http://timbish.blogspot.com/ ___________________________________________________________ This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is prohibited. Please refer to http://www.bnpparibas.co.uk/en/information/legal_information.asp?Code=ECAS-845C5H for additional disclosures.