Error building bondcpp on Windows.
I'm trying to add the bondcpp package to an existing workspace on Windows using the win_ros tools. I'm running the Hydro version of the tools and have built the core ROS modules following the instructions on the Wiki. I'm using 64-bit Windows 7 with Visual Studio 2012 Update 4.
I've tried adding the bond_core package to both the core ROS workspace and to my project workspace. The bond packages compile without error, but only a DLL is generated. The other ROS packages build both a DLL and a static lib file. When building bondcpp in the ROS workspace, my project fails to compile due to the find_package call in CMake failing to find the bondcpp.lib library (since it doesn't exist).
When I include the bond_core package in my project workspace I get the following output:
[ 98%] Building CXX object bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/BondSM_sm.cpp.obj
BondSM_sm.cpp
Unknown compiler version - please run the configure tests and report the results
C:\devel\auxos_ws\src\bond_core\smclib\include\smclib/statemap.h(89) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable d
eprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\string.h(191) : see declaration of 'strncpy'
C:\devel\auxos_ws\src\bond_core\bondcpp\include\bondcpp/bond.h(187) : warning C4099: 'BondSM' : type name first seen using 'class' now seen using 'struct'
c:\devel\auxos_ws\src\bond_core\bondcpp\include\bondcpp\BondSM_sm.h(25) : see declaration of 'BondSM'
Linking CXX shared library C:\devel\auxos_ws\devel\bin\bondcpp.dll
[ 98%] Built target bondcpp
Scanning dependencies of target auxos_client
[100%] Building CXX object auxos_client/CMakeFiles/auxos_client.dir/src/client_node.cpp.obj
client_node.cpp
Unknown compiler version - please run the configure tests and report the results
C:\devel\auxos_ws\src\bond_core\smclib\include\smclib/statemap.h(89) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable d
eprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\string.h(191) : see declaration of 'strncpy'
C:\devel\auxos_ws\src\bond_core\bondcpp\include\bondcpp/bond.h(187) : warning C4099: 'BondSM' : type name first seen using 'class' now seen using 'struct'
c:\devel\auxos_ws\src\bond_core\bondcpp\include\bondcpp\BondSM_sm.h(25) : see declaration of 'BondSM'
NMAKE : fatal error U1073: don't know how to make 'C:\devel\auxos_ws\devel\lib\bondcpp.lib'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
Bond_core appears to build successfully and generates DLL files for all of the packages. It doesn't generate a static lib, however, and the following package that attempts to link against bondcpp fails to compile. I can't see any ...
This doesn't sound right. Have you tried looking into it? -> seems to be Boost related. See How do I build boost with new Visual Studio 2013 preview? on SO.
I had assumed it was because the win_ros tools don't officially support VS2012. I had not looked into it. The boost packages and the other ROS packages build fine and work. They produce the same warning so I'm not sure it's related, but I'll look into it. Thanks.
I don't think it's really important. I'm not sure why
nmake
returns that error though. Perhaps @Daniel Stonier knows.