boost_thread-vc100-mt-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
I try to use boost library in VC++ application, I am wondering which library to use. For example, for boost thread, should I use boost_thread-vc100-mt-1_53.lib or libboost_thread-vc100-mt-1_53.lib? What is difference between them? or in more general, what is difference between boost_xxx_vc100-mt-1_53.lib and libboost_xxx_vc100-mt-1_53.lib? -- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com.
Hi,
One of them is the static library (libboost*.lib) and the other one is the
declaration file for the shared library (boost*.lib).
Matthieu
2013/4/12 young
I try to use boost library in VC++ application, I am wondering which library to use. For example, for boost thread, should I use boost_thread-vc100-mt-1_53.lib or libboost_thread-vc100-mt-1_53.lib? What is difference between them? or in more general, what is difference between boost_xxx_vc100-mt-1_53.lib and libboost_xxx_vc100-mt-1_53.lib?
-- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Information System Engineer, Ph.D. Blog: http://matt.eifelle.com LinkedIn: http://www.linkedin.com/in/matthieubrucher Music band: http://liliejay.com/
Still not clear. libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib I know the "s" means static library. What is different between them? -- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com.
I don't have the s version, so I don't know...
But your original question was answered.
Matthieu
2013/4/12 young
Still not clear.
libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
I know the "s" means static library. What is different between them?
-- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Information System Engineer, Ph.D. Blog: http://matt.eifelle.com LinkedIn: http://www.linkedin.com/in/matthieubrucher Music band: http://liliejay.com/
AMDG On 04/12/2013 07:23 AM, young wrote:
Still not clear.
libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
I know the "s" means static library. What is different between them?
"s" means that it links to the static runtime (/MT). See http://www.boost.org/more/getting_started/windows.html#library-naming In Christ, Steven Watanabe
On Fri, Apr 12, 2013 at 07:47:05AM -0700, Steven Watanabe wrote:
AMDG
On 04/12/2013 07:23 AM, young wrote:
Still not clear.
libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
I know the "s" means static library. What is different between them?
"s" means that it links to the static runtime (/MT). See http://www.boost.org/more/getting_started/windows.html#library-naming
There are two very different parts of the filename pertaining to "static linking". One is about whether the library is a static library or an import library for a DLL. Filenames beginning with "libboost" are static libraries. Filenames beginning with "boost" are import libraries for DLLs. The other is about what kind of VC++ runtime (CRT) the library is built against, the static runtime (LIBCMT/LIBCMTD) or the DLL runtime (MSVCR*.DLL and whatever the debug version is called). Filenames with "s" in the middle are using the static runtime. Filenames without "s" are using the DLL runtime. Note that these are very different concerns, and the autolinker decides which one to used based on the settings and default settings your Boost code has. If the autolinker expects a particular name, you need to either build your Boost in a way that you get such a library, or change the autolinker configuration macros so that it wants a different kind. As shown in Watanabe's link, the B2 feature to control static/dynamic Boost is link=, and the feature to control static/dynamic runtime is runtime-link=. -- Lars Viklund | zao@acc.umu.se
Thank you, Lars Viklund. very clear explaination. -- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com.
On 4/12/2013 10:23 AM, young wrote:
Still not clear.
libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
I know the "s" means static library. What is different between them?
The naming is described here: http://www.boost.org/doc/libs/1_53_0/more/getting_started/windows.html#libra... The 's' linking statically to the C++ standard library and compiler runtime support libraries. Thus boost libs without 's' are built to use the runtime dll, while boost libs with 's' are built to use the static runtime libs. So I'm not sure what you don't understand? By default, MSVC autolinks to boost selecting the library according to your project's Property: C/C++ | Code Generation | Runtime Library setting. Jeff
back to original question: boost_thread-vc100-mt-1_53.lib vs libboost_thread-vc100-mt-1_53.lib Both of them do not have 's'. That means they are not static library. Then why said libboost_thread-vc100-mt-1_53.lib is for static link? -- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com.
AMDG On 04/12/2013 08:07 AM, young wrote:
back to original question:
boost_thread-vc100-mt-1_53.lib vs libboost_thread-vc100-mt-1_53.lib
Both of them do not have 's'. That means they are not static library.
No it does not. Please read the explanation of 's' again: Jeff Flinn wrote:
The 's' linking statically to the C++ standard library and compiler runtime support libraries.
In Christ, Steven Watanabe
I think what confuse me is the following: Bu document, On Windows, only ordinary static libraries use the lib prefix; import libraries and DLLs do not. That mean libboost_thread-vc100-mt-1_53.lib is static library. Then what 's' used for? according to document: 's' - linking statically to the C++ standard library and compiler runtime support libraries. What libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib? Both are static library. -- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com.
AMDG On 04/12/2013 08:20 AM, young wrote:
I think what confuse me is the following:
Bu document, On Windows, only ordinary static libraries use the lib prefix; import libraries and DLLs do not. That mean libboost_thread-vc100-mt-1_53.lib is static library. Then what 's' used for?
according to document: 's' - linking statically to the C++ standard library and compiler runtime support libraries. What libboost_thread-vc100-mt-s-1_53.lib vs libboost_thread-vc100-mt-1_53.lib? Both are static library.
"s" has nothing to do with the static-ness of the Boost library. The C++ runtime can also be either static or shared, and this is /independent/ from whether the Boost library is static or shared. This is what "s" encodes. In Christ, Steven Watanabe
thanks,Steven Watanabe. Clear now. -- View this message in context: http://boost.2283326.n4.nabble.com/boost-thread-vc100-mt-1-53-lib-vs-libboos... Sent from the Boost - Users mailing list archive at Nabble.com.
participants (5)
-
Jeff Flinn
-
Lars Viklund
-
Matthieu Brucher
-
Steven Watanabe
-
young