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@lists.boost.org
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@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hey Damien