when compiling a program in Cygwin by building cmake and on make, the output contains a bunch of strings undefined reference to *
when compiling the same software in Linux, everything is compiled correctly.
CMakeList.txt file:
cmake_minimum_required(VERSION 2.8) include_directories("${CMAKE_SOURCE_DIR}/src" "${CMAKE_SOURCE_DIR}/") file(GLOB main_src "*.h" "*.c" ) add_executable(main ${main_src}) # Search OpenSSL find_package(PkgConfig REQUIRED) pkg_search_module(OPENSSL REQUIRED openssl) if( OPENSSL_FOUND ) include_directories(${OPENSSL_INCLUDE_DIRS}) message(STATUS "Using OpenSSL ${OPENSSL_VERSION}") else() # Error; with REQUIRED, pkg_search_module() will throw an error by it's own endif() target_link_libraries(main ${OPENSSL_LIBRARIES}) set_target_properties(main PROPERTIES LINKER_LANGUAGE CXX) the contents of the file CMakeFiles / main.dir / link.txt
/usr/bin/c++.exe -Wl,--enable-auto-import CMakeFiles/main.dir/activation.co [..] -o main.exe -Wl,--out-implib,libmain.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lssl -lcrypto The message that make
CMakeFiles/main.dir/transport.co:transport.c:(.text+0x29): undefined reference to `__imp_stream_extend' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x9e): undefined reference to `__imp_stream_extend' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x531): undefined reference to `__imp_freerdp_usleep' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x567): undefined reference to `__imp_stream_extend' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x6af): undefined reference to `__imp_freerdp_usleep' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x6db): undefined reference to `__imp_wait_obj_set' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x785): undefined reference to `__imp_wait_obj_get_fds' CMakeFiles/rdpscan.dir/transport.co:transport.c:(.text+0x7b7): undefined reference to `__imp_wait_obj_clear' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x94c): undefined reference to `__imp_stream_new' CMakeFiles/main.dir/transport.co:transport.c:(.text+0x99a): undefined reference to `__imp_stream_extend' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xad3): undefined reference to `__imp_stream_free' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xb6e): undefined reference to `__imp_xzalloc' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xbb6): undefined reference to `__imp_stream_new' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xbca): undefined reference to `__imp_wait_obj_new' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xbe3): undefined reference to `__imp_stream_new' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xbfb): undefined reference to `__imp_stream_new' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xc51): undefined reference to `__imp_stream_free' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xc64): undefined reference to `__imp_stream_free' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xc78): undefined reference to `__imp_stream_free' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xc8c): undefined reference to `__imp_wait_obj_free' CMakeFiles/main.dir/transport.co:transport.c:(.text+0xcc6): undefined reference to `__imp_xfree'
undefined reference tosays it is impossible to find the implementation of the specified function. And if the same code is successfully assembled in a native environment, then the case is most likely in different versions of the plug-in libraries. Try to minimize the example and test this hypothesis. - αλεχολυτ