0
$\begingroup$

Rosanswers logo

Hi, I was trying to compile win_ros with Boost 1.56 and VS2013 x64 following this guide: http://answers.ros.org/question/196227/compiling-win_ros-hydro-on-windows7-64bit-with-vs2013-x64/. However, I end up getting the following error during linking stage:

rospack.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl boost::filesystem3::path_traits::convert(char const *,char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,class std::codecvt<wchar_t,char,int> const &)" 

Can anyone help me to figure out how to resolve it? l will be really grateful for any help! Here is the full output:

This code block was moved to the following github gist: https://gist.github.com/answers-se-migration-openrobotics/97702733a1051839f9842865825d8a17

Originally posted by Atlancer on ROS Answers with karma: 46 on 2016-03-23

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I was able to narrow down the problem: it appears that I was using the wrong headers (the ones for Boost 1.47 instead of Boost 1.56). More info (for anyone interested) can be found in my post on Stackoverflow here: http://stackoverflow.com/questions/36211108/how-to-read-demangled-symbols. To fix the problem I just copied all the headers from boost_1_56_0 folder to C:\opt\rosdeps\hydro\x64\include.

Update 1: Also, during the compilation I encountered the error in timer.cpp and wall_timer.cpp which indicated that conversion from ros::VoidConstPtr to bool was not possible. To fix the error I manually added an explicit cast to bool:

impl_->has_tracked_object_ = (bool) ops.tracked_object;

Then, I was finally able to compile everything.

Update 2: You also need to include boost_chrono-mt.dll into rosdeps/libs folder (just copy it there, no need to add it to any of the .CMake files). It turns out that boost_date_time-mt.dll depends on it at runtime. It will save you 10+ hours of debugging with Dependency Walker.


Originally posted by Atlancer with karma: 46 on 2016-03-24

This answer was ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.