Project

General

Profile

Actions

Bug #3542

closed

Building Wt using static boost

Added by Anonymous over 10 years ago. Updated about 10 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
08/23/2014
Due date:
% Done:

0%

Estimated time:

Description

Hi,

I'm trying to build Wt 3.3.1 statically in Visual Studio 2010 Windows using Boost 1.53 static libraries and Cmake 3. After Cmake generates the project, I look at the Visual Studio projects:

Configuration Properties~~C/C~~>Code Generation->Runtime Library

It has "Multi-threaded DLL (/MD)" selected instead of "Multi-Threaded (/Mt)". Shouldn't the project be /Mt to use the static versions of boost? When I compile I get the errors like:

9>LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_53.lib'

Which is odd, since it is requesting the non-statically linked boost libraries.

Can anyone help me?

-Ethan

Actions #1

Updated by Wim Dumon over 10 years ago

No. MT and MD are flags to select the visual studio runtime library (static or dynamic), and that choice is orthogonal to a static/dynamic boost. You can build a boost dll to static runtime libraries, or a static boost with dynamic runtime libraries. You select this in bjam. Whatever you do, never mix static/dynamic runtime libraries in one project (unless you really know what you're doing, and even then...).

Best regards,

Wim.

Actions #2

Updated by Ethan Chan over 10 years ago

I see, that actually clarified a lot. Thanks.

I'm going to go back and rebuild Boost with static linking. I had used a tool called BlueGo to build Boost for me (http://vertexwahn.de/bluego.html), but I guess it must not have linked statically to the runtime. Sigh. I'll report back.

Thanks Wim!

Actions #3

Updated by Ethan Chan over 10 years ago

I rebuilt Boost with these settings to link statically, but also link to the static runtime:

b2 ---toolset=msvc variant=release link=static threading=multi runtime-link=static

However when building Wt, it was still trying to look for non-statically linked libraries 'libboost_date_time-vc100-mt-1_53.lib'

So then I found out I needed to manually change the setting CMAKE_CXX_FLAGS_RELEASE to use /MT. That seemed to fix the problem. Just curious if this was documented anywhere? Linking can be such a frustrating process.

Actions #4

Updated by Wim Dumon over 10 years ago

  • Status changed from New to Resolved

Hey,

I never build with MT. I believe you'll have to dig in the cmake documentation, this is not Wt specific as Wt doesn't impose MT or MD, both should work.

BR,

Wim.

Actions #5

Updated by Koen Deforche about 10 years ago

  • Assignee set to Wim Dumon
Actions #6

Updated by Koen Deforche about 10 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF