环境搭建
- 注册声网账号,完成实名认证,创建项目。根据频道名生成临时Token
- 下载声网视频SDK,编译调试。这里我下载Windows的版本是3.7.0.2
- CMAKE配置示例如下:
cmake_minimum_required(VERSION 3.20)
project(HelloMetting VERSION 1.0 LANGUAGES CXX)
find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core Gui Widgets PrintSupport )
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets PrintSupport)
# 设置源文件编码为UTF-8
if(MSVC)
add_compile_options(/utf-8)
endif()
# 自动处理Qt的moc、uic、rcc
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
message(STATUS "CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}")
# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
file(GLOB copyResources
"${CMAKE_SOURCE_DIR}/LICENSE"
"${CMAKE_SOURCE_DIR}/assets/*.dll"
"${CMAKE_SOURCE_DIR}/etc/AgoraConfigOpenVideoCall.ini"
)
file(COPY ${copyResources} DESTINATION ${CMAKE_BINARY_DIR})
# 源文件列表
file(GLOB PROJECT_SOURCES
"${CMAKE_SOURCE_DIR}/src/*.cpp"
)
message("PROJECT_SOURCES:${PROJECT_SOURCES}")
# 设置 UI 文件搜索路径
set(CMAKE_AUTOUIC_SEARCH_PATHS
"${CMAKE_SOURCE_DIR}/ui"
)
# UI文件
file(GLOB UI_FILES
"${CMAKE_SOURCE_DIR}/ui/*.ui"
)
# 资源文件
file(GLOB RESOURCE_FILES
"${CMAKE_SOURCE_DIR}/res/*.qrc"
)
# 创建可执行文件
file(GLOB HEADERS
"${CMAKE_SOURCE_DIR}/include/*.h"
)
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
# Debug模式显示用于调试的控制台
ADD_EXECUTABLE(${PROJECT_NAME}
${HEADERS} #MOC处理使用了Qt元系统的头文件
${PROJECT_SOURCES}
${RESOURCE_FILES}
${UI_FILES}
)
ELSE()
# Release模式不显示控制台
ADD_EXECUTABLE(${PROJECT_NAME} WIN32
${HEADERS} #MOC处理使用了Qt元系统的头文件
${PROJECT_SOURCES}
${RESOURCE_FILES}
${UI_FILES}
)
ENDIF()
# 设置 MOC选项和生成路径
set_target_properties(${PROJECT_NAME} PROPERTIES
AUTOMOC_MOC_OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}/include"
)
# 包含目录
target_include_directories(${PROJECT_NAME} PRIVATE
"${CMAKE_SOURCE_DIR}/include"
"${CMAKE_SOURCE_DIR}/third_party/agora_rtc_sdk-3.7.0.2/include"
)
# 链接Qt库及第三方库
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::PrintSupport
"${CMAKE_SOURCE_DIR}/third_party/agora_rtc_sdk-3.7.0.2/lib/agora_rtc_sdk.lib"
)
# 开启 MOC 调试输出
set(CMAKE_AUTOMOC_VERBOSE ON)