Boost logo

Boost Users :

Subject: Re: [Boost-users] linking to boost 1.54 w/ windows and visual studio 2013 RC
From: Damien (damien_at_[hidden])
Date: 2013-09-24 13:20:10


On 24/09/2013 11:03 AM, Jarrett Chisholm wrote:
> Hi all
>
> I'm trying to compile my project as a shared library using scons. I'm
> using Windows 7, and the Visual Studio 2013 RC. In the project, I'm
> using boost.
>
> The project compiles fine. However, when it tries to link, I get the
> following:
>
> /scons: warning: No version of Visual Studio compiler found - C/C++
> compilers most likely not set correctly//
> //
> //scons: Reading SConscript files ...//
> //Compiling Glr//
> //scons: Reading SConscript files ...//
> //Parsing Shaders into header ShaderData.h//
> //Done parsing Shaders into header ShaderData.h//
> //scons: done reading SConscript files.//
> //scons: Building targets ...//
> //Using tempfile c:\users\jarrett\appdata\local\temp\tmpecwym3.lnk for
> command line://
> //link /nologo /dll /out:build\glr.dll /implib:build\glr.lib
> /LIBPATH:build /LIBPATH:src
> /LIBPATH:C:\Users\Jarrett\projects\angelscript-sdk\angelscript\lib
> /LIBPATH:C:\Users\Jarrett\projects\sqlite3
> /LIBPATH:C:\Users\Jarrett\projects\berkelium-win32\lib
> /LIBPATH:C:\Users\Jarrett\projects\SFML\lib "/LIBPATH:C:\Program
> Files\Assimp\lib\x86" "/LIBPATH:C:\Program Files (x86)\Boost\lib"
> /LIBPATH:C:\Users\Jarrett\projects\FreeImage\Dist "/LIBPATH:C:\Program
> Files (x86)\Microsoft Visual Studio 12.0\VC\lib" opengl32.lib
> glew32.lib berkelium.lib sfml-system.lib sfml-window.lib assimp.lib
> freeimage.lib libboost_log-vc120-mt-1_54.lib
> libboost_log_setup-vc120-mt-1_54.lib
> libboost_date_time-vc120-mt-1_54.lib libboost_thread-vc120-mt-1_54.lib
> libboost_wave-vc120-mt-1_54.lib libboost_regex-vc120-mt-1_54.lib
> libboost_filesystem-vc120-mt-1_54.lib
> libboost_system-vc120-mt-1_54.lib build\BasicSceneManager.obj
> build\BasicSceneNode.obj build\Camera.obj build\GlrProgram.obj
> build\GraphicsEngine.obj build\Light.obj build\Window.obj
> build\common\math\Math.obj build\common\io\File.obj
> build\BasicSceneManager.obj build\BasicSceneNode.obj build\Camera.obj
> build\GlrProgram.obj build\GraphicsEngine.obj build\Light.obj
> build\Window.obj build\exceptions\Exception.obj
> build\exceptions\FormatException.obj build\exceptions\GlException.obj
> build\exceptions\IoException.obj build\gui\CallbackParameter.obj
> build\gui\GUI.obj build\gui\GUIObject.obj
> build\gui\HtmlGuiComponent.obj build\models\Animation.obj
> build\models\AssImpLoader.obj build\models\Model.obj
> build\models\ModelLoader.obj build\models\ModelManager.obj
> build\glw\Animation.obj build\glw\AnimationManager.obj
> build\glw\Constants.obj build\glw\Material.obj
> build\glw\MaterialManager.obj build\glw\Mesh.obj
> build\glw\MeshManager.obj build\glw\OpenGlDevice.obj
> build\glw\Texture.obj build\glw\TextureManager.obj
> build\glw\shaders\CPreProcessor.obj build\glw\shaders\GlrParser.obj
> build\glw\shaders\GlrPreProcessor.obj build\glw\shaders\GlrShader.obj
> build\glw\shaders\GlrShaderProgram.obj
> build\glw\shaders\GlslShader.obj
> build\glw\shaders\GlslShaderProgram.obj
> build\glw\shaders\ShaderProgramManager.obj//
> //link @c:\users\jarrett\appdata\local\temp\tmpecwym3.lnk//
> //Using tempfile c:\users\jarrett\appdata\local\temp\tmpep9gzl.lnk for
> command line://
> //link /nologo /dll /out:build\glr.dll /implib:build\glr.lib
> /LIBPATH:build /LIBPATH:src
> /LIBPATH:C:\Users\Jarrett\projects\angelscript-sdk\angelscript\lib
> /LIBPATH:C:\Users\Jarrett\projects\sqlite3
> /LIBPATH:C:\Users\Jarrett\projects\berkelium-win32\lib
> /LIBPATH:C:\Users\Jarrett\projects\SFML\lib "/LIBPATH:C:\Program
> Files\Assimp\lib\x86" "/LIBPATH:C:\Program Files (x86)\Boost\lib"
> /LIBPATH:C:\Users\Jarrett\projects\FreeImage\Dist "/LIBPATH:C:\Program
> Files (x86)\Microsoft Visual Studio 12.0\VC\lib" opengl32.lib
> glew32.lib berkelium.lib sfml-system.lib sfml-window.lib assimp.lib
> freeimage.lib libboost_log-vc120-mt-1_54.lib
> libboost_log_setup-vc120-mt-1_54.lib
> libboost_date_time-vc120-mt-1_54.lib libboost_thread-vc120-mt-1_54.lib
> libboost_wave-vc120-mt-1_54.lib libboost_regex-vc120-mt-1_54.lib
> libboost_filesystem-vc120-mt-1_54.lib
> libboost_system-vc120-mt-1_54.lib build\BasicSceneManager.obj
> build\BasicSceneNode.obj build\Camera.obj build\GlrProgram.obj
> build\GraphicsEngine.obj build\Light.obj build\Window.obj
> build\common\math\Math.obj build\common\io\File.obj
> build\BasicSceneManager.obj build\BasicSceneNode.obj build\Camera.obj
> build\GlrProgram.obj build\GraphicsEngine.obj build\Light.obj
> build\Window.obj build\exceptions\Exception.obj
> build\exceptions\FormatException.obj build\exceptions\GlException.obj
> build\exceptions\IoException.obj build\gui\CallbackParameter.obj
> build\gui\GUI.obj build\gui\GUIObject.obj
> build\gui\HtmlGuiComponent.obj build\models\Animation.obj
> build\models\AssImpLoader.obj build\models\Model.obj
> build\models\ModelLoader.obj build\models\ModelManager.obj
> build\glw\Animation.obj build\glw\AnimationManager.obj
> build\glw\Constants.obj build\glw\Material.obj
> build\glw\MaterialManager.obj build\glw\Mesh.obj
> build\glw\MeshManager.obj build\glw\OpenGlDevice.obj
> build\glw\Texture.obj build\glw\TextureManager.obj
> build\glw\shaders\CPreProcessor.obj build\glw\shaders\GlrParser.obj
> build\glw\shaders\GlrPreProcessor.obj build\glw\shaders\GlrShader.obj
> build\glw\shaders\GlrShaderProgram.obj
> build\glw\shaders\GlslShader.obj
> build\glw\shaders\GlslShaderProgram.obj
> build\glw\shaders\ShaderProgramManager.obj//
> //build\BasicSceneManager.obj : warning LNK4042: object specified more
> than once; extras ignored//
> //build\BasicSceneNode.obj : warning LNK4042: object specified more
> than once; extras ignored//
> //build\Camera.obj : warning LNK4042: object specified more than once;
> extras ignored//
> //build\GlrProgram.obj : warning LNK4042: object specified more than
> once; extras ignored//
> //build\GraphicsEngine.obj : warning LNK4042: object specified more
> than once; extras ignored//
> //build\Light.obj : warning LNK4042: object specified more than once;
> extras ignored//
> //build\Window.obj : warning LNK4042: object specified more than once;
> extras ignored//
> //LINK : fatal error LNK1104: cannot open file
> 'libboost_log-vc110-mt-1_54.lib'//
> //scons: building terminated because of errors.//
> //scons: *** [build/glr.dll] Error 1104/
>
> I'm curious why it's trying to link to
> `libboost_log-vc110-mt-1_54.lib` instead of
> `libboost_log-vc120-mt-1_54.lib`, which is what I specified in the
> link command. Also, as far as I can tell, `vcxxx` is the compiler tag
> boost uses to tell what version of the compiler built the boost
> library...so it's almost like `scons` thinks boost was built using
> Visual Studio 2012, which would be `vc110`...I'm not sure.
>
> Any help is appreciated!
>
> Cheers
>
> Jarrett
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users

Jarrett,

VS2013 isn't supported in SCons yet, so the default behaviour for the
various versions of VS stops at 2012 (VC11). See the last week of the
SCons mailing list for details, VS2013 has caused some unusual behavior
depending on how your system paths are set up. On your compile step,
are you absolutely sure you were using VS2013?

What did you build boost itself with? VS2013 or VS2012? (and are you
sure of what you used?) This is all highly likely to be a SCons issue,
not a Boost issue, and you should probably post your question to the
SCons list. When I setup a build with SCons, I override the
compiler/lib/linker commands in SCons to get around problems like this.

Damien

Damien



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