Re: [CMake] error of mixed dynamic/static link to Boost in windows VS2008

2012-01-06 Thread Mateusz Loskot
On 6 January 2012 05:30, Forest Yang yzine0...@gmail.com wrote:
  I am writing a library using boost_regex. For the unit test part, I
 am using boost_unit_test_framework and needs to be dynamical linked.
 Everything worked great on Linux but not the Windows VS 2008.

  I used the BoostPro binary installer, got boost components like:
 boost_regex-vc90-mt-gd-1_47.dll and .lib,  also the
 libboost_regex-vc90-mt-gd-1_47.lib file. After the FIND_PACKAGE(Boost
 Components ...) I got the boost_*-vc90-mt-gd-1_47.lib version, (no
 prefix lib), however, when I compile the unit test executable, it has
 an error fatal error LNK1104: cannot open file
 'libboost_regex-vc90-mt-gd-1_47.lib' If I add its directory C:\Program
 Files\boost\boost_1_47\lib to the linker's Additional Library
 Directory in VS2008 everything went OK.

  My question is

 1. Where this libboost* comes from ? all my CMake script are giving
 boost_* instead of libboost_* libraries.
 2. When to set this linker directory so I do not need to add this
 manually in VS2008.

The libboost_* libraries are dragged in by auto-linking on Windows.
Auto-linking is ON by default on Windows.
You have to explicitly disable it.

Go to CMake installation directory, locate FindBoost.cmake file,
open this file and read the comments where you have it explained very well.

Best regards,
-- 
Mateusz Loskot, http://mateusz.loskot.net
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

[CMake] error of mixed dynamic/static link to Boost in windows VS2008

2012-01-05 Thread Forest Yang
Hi,

  I am writing a library using boost_regex. For the unit test part, I
am using boost_unit_test_framework and needs to be dynamical linked.
Everything worked great on Linux but not the Windows VS 2008.

  I used the BoostPro binary installer, got boost components like:
boost_regex-vc90-mt-gd-1_47.dll and .lib,  also the
libboost_regex-vc90-mt-gd-1_47.lib file. After the FIND_PACKAGE(Boost
Components ...) I got the boost_*-vc90-mt-gd-1_47.lib version, (no
prefix lib), however, when I compile the unit test executable, it has
an error fatal error LNK1104: cannot open file
'libboost_regex-vc90-mt-gd-1_47.lib' If I add its directory C:\Program
Files\boost\boost_1_47\lib to the linker's Additional Library
Directory in VS2008 everything went OK.

  My question is

1. Where this libboost* comes from ? all my CMake script are giving
boost_* instead of libboost_* libraries.
2. When to set this linker directory so I do not need to add this
manually in VS2008.


Thanks.

Forest.
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake