Robotics StackExchange | Archived questions

ROS2 building: link problem on Windows

Hi all,

Trying to compile ROS2 from source. Windows 10 machine, following the instructions from "Building ROS 2 on Windows".

Some things are compiling when I do the 'colcon build', but I'm getting stopped at the compile of cyclonedds.

It's looking for a few symbols that aren't present. Digging a little deeper, I see that cyclonedds looks to be linking to libssl64MD.lib and libcrypto64MD.lib in OpenSSL. When I take a look at the symbol table in those files in my OpenSSL directory, I don't see the missing symbols there. However, I do see at least the first one (CRYPTOnumlocks) in libeay32MD.lib, which isn't included in the link list (that I can see).

My OpenSSL is freshly downloaded. The install file is Win64OpenSSL-102t.exe.

Any suggestions from the peanut gallery? Thanks in advance!

For completeness, in the events log I see the following:

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol CRYPTOnumlocks referenced in function ddsisslfini [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol CRYPTOsetlockingcallback referenced in function ddsisslfini [C:\dev\ros2_eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol CRYPTOsetidcallback referenced in function ddsisslfini [C:\dev\ros2_eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol CRYPTOsetdynlockcreatecallback referenced in function ddsisslfini [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol CRYPTOsetdynlocklockcallback referenced in function ddsisslfini [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol CRYPTOsetdynlockdestroycallback referenced in function ddsisslfini [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol OPENSSLaddallalgorithmsnoconf referenced in function ddsisslinit [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol EVPcleanup referenced in function ddsisslfini [C:\dev\ros2_eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol SSLloaderrorstrings referenced in function ddsisslinit [C:\dev\ros2_eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol SSLv23method referenced in function ddsisslctxinit [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol SSLlibraryinit referenced in function ddsisslinit [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'ddsissl.obj : error LNK2019: unresolved external symbol ERRfreestrings referenced in function ddsisslfini [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 StdoutLine: {'line': b'C:\dev\ros2eloquent\build\cyclonedds\bin\Release\ddsc.dll : fatal error LNK1120: 12 unresolved externals [C:\dev\ros2eloquent\build\cyclonedds\src\core\ddsc.vcxproj]\r\n'}

4.281000 JobEnded: {'identifier': 'ament_pyflakes', 'rc': 1}

Asked by leselkins on 2019-12-05 19:58:19 UTC

Comments

Answers