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).

Wiki: win_ros/Msvc SDK Projects - Fuerte (last edited 2012-07-13 13:06:43 by DanielStonier)