Closed tthh7 closed 11 months ago
Below CMakefiles.txt
works fine with released minio-cpp
cmake_minimum_required(VERSION 3.10)
project(hello)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
message(FATAL_ERROR "FATAL: In-source builds are not allowed. You should create a separate directory for build files.")
endif()
set(requiredlibs)
if(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0 AND NOT MINGW)
list(APPEND requiredlibs stdc++fs)
endif()
endif()
find_path(MINIOCPP_INCLUDE_DIRS miniocpp/client.h)
find_library(MINIOCPP_LIBRARIES miniocpp)
include_directories(${MINIOCPP_INCLUDE_DIRS})
list(APPEND requiredlibs ${MINIOCPP_LIBRARIES})
message(STATUS "Found required libs: ${requiredlibs}")
add_executable(hello main.cpp)
target_link_libraries(hello ${requiredlibs})
Below
CMakefiles.txt
works fine with releasedminio-cpp
cmake_minimum_required(VERSION 3.10) project(hello) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") message(FATAL_ERROR "FATAL: In-source builds are not allowed. You should create a separate directory for build files.") endif() set(requiredlibs) if(CMAKE_COMPILER_IS_GNUCC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0 AND NOT MINGW) list(APPEND requiredlibs stdc++fs) endif() endif() find_path(MINIOCPP_INCLUDE_DIRS miniocpp/client.h) find_library(MINIOCPP_LIBRARIES miniocpp) include_directories(${MINIOCPP_INCLUDE_DIRS}) list(APPEND requiredlibs ${MINIOCPP_LIBRARIES}) message(STATUS "Found required libs: ${requiredlibs}") add_executable(hello main.cpp) target_link_libraries(hello ${requiredlibs})
You may have misunderstood. I encountered the aforementioned error while building the minio-cpp library from source. My system is Ubuntu 18.04, and the GCC version is 11.4.0. How can I resolve the error? Your guidance would be greatly appreciated.
root@lbh-virtual-machine:/home/lbh/minio-cpp# cmake --build ./build --config Release [ 10%] Built target miniocpp [ 11%] Linking CXX executable GetObjectProgress ../vcpkg_installed/x64-linux/debug/lib/libcrypto.a(libcrypto-lib-dso_dlfcn.o):在函数‘dlfcn_load’中: /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:116:对‘dlopen’未定义的引用 /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:118:对‘dlerror’未定义的引用 /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:138:对‘dlclose’未定义的引用 ../vcpkg_installed/x64-linux/debug/lib/libcrypto.a(libcrypto-lib-dso_dlfcn.o):在函数‘dlfcn_unload’中: /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:161:对‘dlclose’未定义的引用 ../vcpkg_installed/x64-linux/debug/lib/libcrypto.a(libcrypto-lib-dso_dlfcn.o):在函数‘dlfcn_bind_func’中: /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:186:对‘dlsym’未定义的引用 /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:188:对‘dlerror’未定义的引用 ../vcpkg_installed/x64-linux/debug/lib/libcrypto.a(libcrypto-lib-dso_dlfcn.o):在函数‘dlfcn_pathbyaddr’中: /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:422:对‘dladdr’未定义的引用 /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:440:对‘dlerror’未定义的引用 ../vcpkg_installed/x64-linux/debug/lib/libcrypto.a(libcrypto-lib-dso_dlfcn.o):在函数‘dlfcn_globallookup’中: /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:447:对‘dlopen’未定义的引用 /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:450:对‘dlsym’未定义的引用 /home/lbh/minio-cpp/vcpkg-master/buildtrees/openssl/x64-linux-dbg/../src/nssl-3.1.3-22892fd447.clean/crypto/dso/dso_dlfcn.c:451:对‘dlclose’未定义的引用 collect2: error: ld returned 1 exit status examples/CMakeFiles/GetObjectProgress.dir/build.make:105: recipe for target 'examples/GetObjectProgress' failed make[2]: [examples/GetObjectProgress] Error 1 CMakeFiles/Makefile2:258: recipe for target 'examples/CMakeFiles/GetObjectProgress.dir/all' failed make[1]: [examples/CMakeFiles/GetObjectProgress.dir/all] Error 2 Makefile:129: recipe for target 'all' failed make: *** [all] Error 2
How to resolve this issue, please help me