Boost logo

Boost Users :

Subject: Re: [Boost-users] linking to boost 1.54 w/ windows and visual studio 2013 RC
From: Jarrett Chisholm (j.chisholm_at_[hidden])
Date: 2013-09-24 13:52:53


On 24/09/13 01:20 PM, Damien wrote:
> 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 mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hey Damien

Thanks for replying!

I'm sure it's VS2013 - I removed all the other build systems. Also, the
project didn't compile with previous versions (due to c++11 features).

I built boost with VS2013 as well.

Thanks for the suggestion - I just emailed the above question to the
scons-users list.

Also, how did you override the compiler/lib/linker commands in SCons?
Would you mind enlightening me? :)

Cheers

Jarrett



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