Giter Club home page Giter Club logo

Comments (6)

dbxxx-ac avatar dbxxx-ac commented on June 1, 2024

我的CMakeList改成了下面这样:

# CMake 版本要求 (最低 3.1)
cmake_minimum_required (VERSION 3.1)
# 项目名称
project(my-qqrobot)
# 设置项目的 C++ 标准
set(CMAKE_CXX_STANDARD 11)

# 不要构建 mirai-cpp 自带的 examples
set(MIRAI_CPP_BUILD_EXAMPLES OFF CACHE BOOL "Build examples" FORCE)
# 添加子模块 mirai-cpp
add_subdirectory(mirai-cpp)

# 源码以 UTF-8 编码保存,使用 MSVC 编译器时需要加编译参数提供支持
if(MSVC)
    add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
    message(STATUS "optional: /UTF-8")   
endif(MSVC)

add_executable(${PROJECT_NAME} src/main.cpp)
# 设置头文件目录
include_directories(include)
# 链接 mirai-cpp
target_link_libraries(${PROJECT_NAME} PRIVATE mirai-cpp)
# 使用 mirai-cpp 静态库
target_compile_definitions(${PROJECT_NAME} PRIVATE MIRAICPP_STATICLIB)
# gcc 要连接 pthread
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_link_libraries(${PROJECT_NAME} PRIVATE pthread)
target_link_libraries(${PROJECT_NAME} PRIVATE ssl)
target_link_libraries(${PROJECT_NAME} PRIVATE crypto)
# 上边这两行是我后加的
endif()

from mirai-cpp.

dbxxx-ac avatar dbxxx-ac commented on June 1, 2024

不一定是bug,也有可能是我哪里搞错了。

from mirai-cpp.

dbxxx-ac avatar dbxxx-ac commented on June 1, 2024

我还把httplib.h更新成最新版本了……

from mirai-cpp.

dbxxx-ac avatar dbxxx-ac commented on June 1, 2024

因为旧版本(也就是mirai-cpp内置的httplib.h版本)的httplib.h好像有bug

from mirai-cpp.

cyanray avatar cyanray commented on June 1, 2024

我没尝试过这个http库的全部功能,所以也不清楚错误在哪里。
定位错误需要你提供崩溃时的调用堆栈。

定义这个宏的话,用下面的方式也许会比较好(否则你要确保这个宏的定义在#include<mirai.h>之上)

# 加入这一行
target_compile_definitions(${PROJECT_NAME} PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
target_link_libraries(${PROJECT_NAME} PRIVATE ssl)
target_link_libraries(${PROJECT_NAME} PRIVATE crypto)

如果你需要发起http请求,其实我更推荐你使用curl而不是使用mirai-cpp内置的http库。(虽然引入两个http库蛮蠢的,但是没办法,这是cpp)

from mirai-cpp.

dbxxx-ac avatar dbxxx-ac commented on June 1, 2024

我没尝试过这个http库的全部功能,所以也不清楚错误在哪里。
定位错误需要你提供崩溃时的调用堆栈。

定义这个宏的话,用下面的方式也许会比较好(否则你要确保这个宏的定义在#include<mirai.h>之上)

# 加入这一行
target_compile_definitions(${PROJECT_NAME} PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
target_link_libraries(${PROJECT_NAME} PRIVATE ssl)
target_link_libraries(${PROJECT_NAME} PRIVATE crypto)

如果你需要发起http请求,其实我更推荐你使用curl而不是使用mirai-cpp内置的http库。(虽然引入两个http库蛮蠢的,但是没办法,这是cpp)

感谢您的回复!

感谢您的建议,我换用curl试下。

from mirai-cpp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.