#find_package(OpenSSL REQUIRED) # #_create_base(interface asio ${CMAKE_CURRENT_LIST_DIR}/src "") # #target_include_directories(asio INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include) # # #target_compile_definitions(asio INTERFACE ASIO_STANDALONE) #target_compile_definitions(asio INTERFACE ASIO_SEPARATE_COMPILATION) #target_link_libraries(asio INTERFACE OpenSSL::SSL OpenSSL::Crypto) #add_library(exe SHARED) #target_link_libraries(exe PUBLIC asio) # grep IO_URING /boot/config-$(uname -r) #set(OPENSSL_ROOT_DIR ${CMAKE_SYSROOT}/usr) #set(OPENSSL_ROOT_DIR ${CMAKE_SYSROOT}) #set(OPENSSL_ROOT_DIR "C:/wyc/toolchain/ubuntu_20_04_pure/x86_64-wyc-linux-gnu/sysroot/usr") #set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/x86_64-linux-gnu/libcrypto.so") #set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include") #message("OPENSSL_ROOT_DIR ${OPENSSL_ROOT_DIR}") find_package(OpenSSL REQUIRED) add_library(asio_interface INTERFACE) set(asio_root "${CMAKE_CURRENT_LIST_DIR}/asio-asio-1-38-0") set(asio_include "${asio_root}/include") target_include_directories(asio_interface INTERFACE "${asio_root}/include") file(GLOB_RECURSE srcs "${asio_root}/include/asio.hpp" "${asio_root}/src/asio.cpp" "${asio_root}/src/asio_ssl.cpp" ) add_library(asio_object STATIC ${srcs}) target_compile_definitions(asio_interface INTERFACE ASIO_STANDALONE) target_compile_definitions(asio_interface INTERFACE ASIO_SEPARATE_COMPILATION) #target_compile_definitions(asio_interface INTERFACE ASIO_NO_DEPRECATED) #禁用 Asio 已弃用的接口和功能。 target_compile_definitions(asio_interface INTERFACE ASIO_NO_TS_EXECUTORS) #禁用 Sender Receiver Executor 模式 target_compile_definitions(asio_interface INTERFACE ASIO_NO_DYNAMIC_BUFFER_V1) #禁用1版本缓存 用v2 # debug 用 #target_compile_definitions(asio_interface INTERFACE ASIO_ENABLE_BUFFER_DEBUGGING) #启用 Asio 的缓冲区调试支持 #target_compile_definitions(asio_interface INTERFACE ASIO_ENABLE_HANDLER_TRACKING) #追踪回调函数 target_include_directories(asio_interface INTERFACE /usr/src/linux-headers-5.15.0-136-generic/include/generated/uapi) target_link_libraries(asio_object PRIVATE OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(asio_object PUBLIC asio_interface) # https://blog.csdn.net/2301_79485441/article/details/135285926 多内核问题解决 #alientek@alientek-virtual-machine:/usr/src$ dpkg --get-selections | grep linux-image #linux-image-5.15.0-136-generic install #linux-image-5.15.0-76-generic install #linux-image-5.8.0-41-generic install #linux-image-generic-hwe-20.04 install # sudo apt-get remove 内核名称 # sudo apt-get remove linux-image-5.15.0-76-generic # sudo apt-get remove linux-image-5.8.0-41-generic #target_compile_definitions(asio INTERFACE ASIO_HEADER_ONLY) #if(UNIX AND NOT APPLE) # execute_process( # COMMAND uname -r # OUTPUT_VARIABLE KERNEL_VERSION # OUTPUT_STRIP_TRAILING_WHITESPACE # ) # string(REGEX MATCH "^[0-9]+" KERNEL_MAJOR_VERSION ${KERNEL_VERSION}) # if(KERNEL_MAJOR_VERSION GREATER_EQUAL "5") # string(REGEX MATCH "^[0-9]+\\.[0-9]+" KERNEL_MINOR_VERSION ${KERNEL_VERSION}) # string(REPLACE "." "" KERNEL_MINOR_VERSION_NUMBER ${KERNEL_MINOR_VERSION}) # if(KERNEL_MINOR_VERSION_NUMBER GREATER_EQUAL "1") # target_compile_definitions(asio INTERFACE ASIO_HAS_IO_URING) # target_include_directories(asio INTERFACE ${EXTERNAL_INSTALL_DIR}/liburing/include) # target_link_libraries(asio INTERFACE ${EXTERNAL_INSTALL_DIR}/liburing/lib/liburing.so ${EXTERNAL_INSTALL_DIR}/liburing/lib/liburing-ffi.so) ## target_compile_definitions(asio INTERFACE ASIO_HAS_IO_URING_AS_DEFAULT) ## target_compile_definitions(asio INTERFACE ASIO_HAS_IO_URING) # else() # endif() # endif() #endif() #CMake Error in CMakeLists.txt: #Target "asio" INTERFACE_INCLUDE_DIRECTORIES property contains path: # #"C:/wyc/CLionProjects/plantSunCat/core_library/include" # #which is prefixed in the source directory. # $;$ #file(APPEND ${CMAKE_BINARY_DIR}/all_srcs.txt "src: ${src}\n")