Boost logo

Boost Users :

Subject: Re: [Boost-users] Linker warning LNK4217: locally defined symbol _ imported in function _
From: Yang Zhang (yanghatespam_at_[hidden])
Date: 2009-10-17 17:32:07


OK, I learned about auto_link and the #pragma's in the headers that
automagically locate the correct .lib, but they aren't working. The
linker now complains about not being able to find
libboost_program_options-vc90-mt-s-1_40.lib, whereas I have only
*-vc100-* - strange, since I built boost from the exact same (Visual C
9.0) terminal window right before trying to build my app. The specific
error is:

LINK : fatal error LNK1104: cannot open file
'libboost_program_options-vc90-mt-s-1_40.lib'

Any ideas? Thanks in advance.

On Wed, Oct 14, 2009 at 5:40 PM, Yang Zhang <yanghatespam_at_[hidden]> wrote:
> I'm building the below tiny boost app with the WDK (note that I'm
> *not* building a driver or anything kernel-mode, just a regular
> userland C++ app), but I'm getting the following errors when linking
> with the boost libraries that I built earlier using bootstrap and
> .\bjam (from the same terminal window). Anyone know what the problem
> is, and how I might fix or work around it?
>
> C:\exp>more exp.cpp
> #pragma warning(disable: 4512)
> #include <boost/program_options.hpp>
> int __cdecl main() {
>  boost::program_options::options_description desc("Allowed options");
>  return 0;
> }
>
> C:\exp>more sources
> TARGETNAME=exp
> TARGETTYPE=PROGRAM
>
> USE_MSVCRT=1
> USE_STL=1
> USE_NATIVE_EH=1
>
> MSC_WARNING_LEVEL=/W4 /WX
>
> _NT_TARGET_VERSION= $(_NT_TARGET_VERSION_WINXP)
>
> INCLUDES=..\boost_1_40_0
>
> SOURCES=exp.cpp
>
> UMTYPE=console
> UMBASE=0x400000
>
> TARGETLIBS = $(SDK_LIB_PATH)\ws2_32.lib ..\boost_1_40_0\stage\lib\libboost_progr
> am_options-vc100-mt.lib
>
> C:\exp>build
> BUILD: Compile and Link for x86
> BUILD: Loading c:\winddk\7600.16385.0\build.dat...
> BUILD: Computing Include file dependencies:
> BUILD: Start time: Wed Oct 14 17:34:23 2009
> BUILD: Examining c:\exp directory for files to compile.
>    c:\exp
> Invalidating OACR warning log for 'root:x86chk'
> BUILD: Saving c:\winddk\7600.16385.0\build.dat...
> BUILD: Compiling and Linking c:\exp directory
> Configuring OACR for 'root:x86chk' - <OACR on>
> _NT_TARGET_VERSION SET TO WINXP
> Linking Executable - objchk_win7_x86\i386\exp.exe
> 1>errors in directory c:\exp
> 1>link : error LNK1218: warning treated as error; no output file generated
> BUILD: Finish time: Wed Oct 14 17:34:44 2009
> BUILD: Done
>
>    1 executable built - 1 Warning - 1 Error
>
> C:\exp>more *wrn
> 1>warnings in directory c:\exp
> 1>c:\exp\libboost_program_options-vc100-mt.lib(options_description.obj)
> : warning LNK4217: locally defined symbol
> ??1?$basic_streambuf_at_DU?$char_traits_at_D@std@@@std@@UAE_at_XZ (public:
> virtual __thiscall std::basic_streambuf<char,struct
> std::char_traits<char> >::~basic_streambuf<char,struct
> std::char_traits<char> >(void)) imported in function "public: virtual
> __thiscall std::basic_stringbuf<char,struct
> std::char_traits<char>,class std::allocator<char>
>>::~basic_stringbuf<char,struct std::char_traits<char>,class
> std::allocator<char> >(void)"
> (??1?$basic_stringbuf_at_DU?$char_traits_at_D@std@@V?$allocator_at_D@2@@std@@UAE_at_XZ)
> --
> Yang Zhang
> http://www.mit.edu/~y_z/
>

-- 
Yang Zhang
http://www.mit.edu/~y_z/

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net