Closed zongyuyilang123 closed 1 year ago
You could need to use CMakeLists.txt
like below
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 could need to use
CMakeLists.txt
like belowcmake_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})
thanks!But when I exec cmake ..
, Report the following error:
-- Found required libs: stdc++fs;MINIOCPP_LIBRARIES-NOTFOUND
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
MINIOCPP_INCLUDE_DIRS
used as include directory in directory /home/oem/workSpace/yuHongKingLong/minio_3/demo
used as include directory in directory /home/oem/workSpace/yuHongKingLong/minio_3/demo
used as include directory in directory /home/oem/workSpace/yuHongKingLong/minio_3/demo
MINIOCPP_LIBRARIES
linked by target "demo" in directory /home/oem/workSpace/yuHongKingLong/minio_3/demo
-- Configuring incomplete, errors occurred!
See also "/home/oem/workSpace/yuHongKingLong/minio_3/demo/build/CMakeFiles/CMakeOutput.log".
when I execute
g++ ./examples/UploadObject.cc -I include -I build/vcpkg_installed/x64-linux/include -std=c++17
result is below like the picture
So how should I compile it?