Goal
Demonstrate what settings are needed for linking to the ros sdk.
Prerequisites
You will need to have installed and tested the Msvc SDK. If it's your first time, install core libraries and the sdk to the default paths (C:\opt\rosdeps\x86 and C:\opt\ros\fuerte\x86) so you do not need to change a host of configuration settings.
You'll also need either MS Visual Express - C++ 2010 or Visual Studio 2010. The following has been tested and verified on MS Express, but should work on Visual Studio. If it does not, contact the devs.
Demo Project
So far we've only had experience setting up simple Win32 projects (apps/libraries). If you have had success setting up other types of projects, please document that here.
A demo solution is installed with the sdk into C:\opt\rosws\fuerte\sdk-tutorials.
If your sdk is in the default location, C:\opt then it should compile and be able to run debuggable instances out of the box. Otherwise look to the ros property sheet inside to reconfigure paths.
Creating Your Own Projects
Project Settings
There are four project settings that you'll need to modify:
C++->General->Additional Include Directories
C++->Preprocessor->Preprocessor Definitions
Linker->General->Additional Library Directories
Linker->Input->Additional Dependencies
Debugging->Environment
As an example, on my system:
Additional Include Directories:
C:\opt\rosdeps\fuerte\x86\include;C:\opt\ros\fuerte\x86\include;%(AdditionalIncludeDirectories)
Processor definitions (prepend the following):
ROS_BUILD_SHARED_LIBS=1;
Additional Library Directories:
C:\opt\rosdeps\fuerte\x86\lib;C:\opt\ros\fuerte\x86\lib;%(AdditionalLibraryDirectories)
Library Dependencies (prepend the following):
roscpp.lib;roscpp_serialization.lib;rosconsole.lib;rostime.lib;
Debugging Environment:
PATH=C:\opt\rosdeps\fuerte\x86\lib;C:\opt\rosdeps\fuerte\x86\bin;C:\opt\ros\fuerte\x86\lib;C:\opt\ros\fuerte\x86\bin;$(Path) $(LocalDebuggerEnvironment)
User property sheets are an easier way of setting these (all except for the debugging environment variables) for a whole solution rather than doing it project by project. You can see an example of this in the reference tutorials solution (look for ros.props or open up the property manager in the solution).