ROS2 building: link problem on Windows

asked 2019-12-05 18:58:19 -0500

leselkins gravatar image

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 (CRYPTO_num_locks) 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-1_0_2t.exe.

Any suggestions from the peanut gallery? Thanks in advance!

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

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

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

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

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

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

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

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

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

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

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

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

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

[4.281000 ... (more)

edit retag flag offensive close merge delete