Skip to content

CMake config doesn't add needed libcrypto link dependency #1388

Open
@tonyelewis

Description

@tonyelewis

Not sure about this one…

Summary: if I update websocketpp to develop to get cpprestsdk working with Boost 1.72, the CMake-based build doesn't handle the resulting dependency on libcrypto.

I have a single source file main.cpp:

#include <cpprest/http_client.h>

int main() {
}

…and CMakeLists.txt:

cmake_minimum_required( VERSION 3.7 )

project( main )

find_package( Boost 1.72 REQUIRED system )
find_package( cpprestsdk REQUIRED        )

add_executable       ( main main.cpp                                  )
target_link_libraries( main PRIVATE cpprestsdk::cpprest Boost::system )

(I include the Boost::system because of the issue described in #991)

Since I'm using Boost 1.72, I've checked-out the zaphoyd/websocketpp repo in Release/libs/websocketpp to develop (bc0dc57) as advised on this comment on #1378.

Now the build fails with:

/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: undefined reference to symbol 'CONF_modules_unload@@OPENSSL_1_1_0'
//usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
ninja: build stopped: cannot make progress due to previous errors.

…but succeeds if I add -lcrypto.

Since these files are only using cpprestsdk, I think cpprestsdk's CMake config (and/or the CMake config of its dependencies) should be dealing with this in CMake targets.

Thank you for all work on this library.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions