[sldev] Linker error building a Debug viewer from 1.17.0.12 sources under VC8

Able Whitman able.whitman at gmail.com
Wed Jun 20 01:09:20 PDT 2007


I'm trying to build a Debug configuration of the 1.17.0.12 sources under
VC8. Using Nicholasz's VC8 project files, just building the project as-is
resulted in some linker errors because the Debug config hadn't been changed
to use the VC8 versions of the APR and Mozilla libraries. Fixing this
problem resulted in other linker errors, particularly a missing fmod
library. So I copied the missing .libs from the "i686-win32\lib_release"
folder to the "lib_debug" folder, which solved the fmod problem.

Then I got linker errors about the VC8 Mozilla lib, indicating that there
were a couple of cookie-related exported functions that (apparently) were in
the release version of the VC8 Mozilla lib, but not in the debug version. So
I copied the release Mozilla libs into the lib_debug folder.

This nearly works, but now I keep getting the following linker error:

"llmozlib-vc80.lib(llembeddedbrowserwindow.obj) : error LNK2019: unresolved
external symbol __invalid_parameter_noinfo referenced in function "public:
class std::list<class LLEmbeddedBrowserWindowObserver *,class
std::allocator<class LLEmbeddedBrowserWindowObserver *>
>::_Const_iterator<1> & __thiscall std::list<class
LLEmbeddedBrowserWindowObserver *,class std::allocator<class
LLEmbeddedBrowserWindowObserver *> >::_Const_iterator<1>::operator++(void)"
(??E?$_Const_iterator@$00@?$list at PAVLLEmbeddedBrowserWindowObserver@@V?$allocator@
PAVLLEmbeddedBrowserWindowObserver@@@std@@@std@@ QAEAAV012 at XZ)"

The symbol in question, "__invalid_parameter_noinfo" is related to checked
STL iterators (see:
http://msdn2.microsoft.com/En-US/library/aa985965(VS.80).aspx
<http://msdn2.microsoft.com/En-US/library/aa985965%28VS.80%29.aspx>), so I
tried disabling them by setting the symbol _SECURE_SCL=0 (see:
http://msdn2.microsoft.com/En-US/library/aa985896(VS.80).aspx<http://msdn2.microsoft.com/En-US/library/aa985896%28VS.80%29.aspx>).
This didn't
solve the problem.

I thought the problem is that the "__invalid_parameter_noinfo" symbol is
used in the non-debug CRT (msvcrt), but not the debug version (msvcrtd). But
I built the Debug configuration against the non-debug multi-threaded CRT to
see if this solves the problem. (Even though I'd much prefer to use msvcrtd
in the Debug config.) This also did not solve the problem.

At this point, I believe that the right solution is to get a version of the
VC8 Mozilla lib that is built against the debug version of the VC8 CRT
(msvcrtd). I don't think this is something I can produce myself, but if
anyone else has some insight into how to solve this problem, please let me
know. I'm hoping it's something simple and dumb that I've overlooked,
because I would rather have a working Debug build and look foolish than not
have one. :)

--Able
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/sldev/attachments/20070620/06e63ec4/attachment.htm


More information about the SLDev mailing list