cmake之函数
函数
添加函数
为每个源文件添加 __FILENAME__ 宏
# utils.cmake
#重新定义当前目标的源文件的 __FILENAME__ 宏
function(redefine_file_macro targetname)
#获取当前目标的所有源文件
get_target_property(source_files "${targetname}" SOURCES)
#遍历源文件
foreach(sourcefile ${source_files})
#获取当前源文件的编译参数
get_property(defs SOURCE "${sourcefile}"
PROPERTY COM...
msys2环境下使用外部mingw64编译器
电脑环境
Windows 10
msys2
QT5.14.2 mingw64(已安装)
步骤
安装 msys2
下载安装包 https://www.msys2.org/
运行安装包,选择安装目录,默认安装即可
配置 msys2
运行 msys2,输入 pacman -Syu 更新软件包
安装常用软件包:pacman -S git zsh vim tree make autoconf automake libtool
安装 mingw64 编译器:pacman -S mingw-w64-x86_64-toolchain
注意:如果要使用外部编...
ubuntu下交叉编译tinyalsa
环境
Ubuntu 20.04.2 LTS
tinyalsa-2.0.0
下载源码
Github https://github.com/tinyalsa/tinyalsa
解压
tar -xvf tinyalsa-2.0.0.tar.bz2
编译源码
添加交叉编译配置
# vim toolchain_arm_linux_gcc.cmake
# 设置C和C++编译器路径
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_C...
ubuntu下交叉编译alsa-lib和alsa-utils
环境
Ubuntu 20.04.2 LTS
alsa-lib-1.2.2
alsa-utils-1.2.2
下载源码
官网https://www.alsa-project.org
解压
tar -xvf alsa-lib-1.2.2.tar.bz2
tar -xvf alsa-utils-1.2.2.tar.bz2
安装依赖
sudo apt install -y build-essential gcc g++ cmake libxkbcommon-x11-dev libgl1-mesa-dev libglu1-mesa-dev libfontconfig1-dev libmysqlclient-dev l...
ubuntu下编译QT
环境
Ubuntu 20.04.2 LTS
Qt 5.14.2
下载源码
官网https://download.qt.io/archive/qt/
完整路径https://download.qt.io/archive/qt/5.14/5.14.2/single/qt-everywhere-src-5.14.2.tar.xz
解压
# 注意解压路径不要有中文
tar -xvf qt-everywhere-src-5.14.2.tar.xz
安装依赖
sudo apt install -y build-essential gcc g++ cmake libxkbcommon-x11-dev libgl1-mesa-dev lib...
音频调试相关
概述
音频调试是在开发过程中对Android系统中的音频功能进行故障排除和优化的重要步骤。通过调试音频相关的问题,可以确保音频功能的正常运行,并提供更好的用户体验。本文将介绍一些常见的音频调试方法和工具,以及在Android系统中进行音频调试的一般流程。
Android framework
Android framework是Android系统中的一个重要组成部分,它提供了访问音频硬件和实现音频功能的接口和类。在进行音频调试时,可以利用Android framework提供的工具和方法来诊断和解决问题。
dumpsys
dumpsys media.audio_flinger命令是Android系统中一个强大的调试命令,它可以用于查看音频服务的详细信息。通过运行该命令,可以获取...
C++11新特性之type_traits
概述
C++11中的type_traits是一个模板元编程库,它提供了一些模板类和模板函数,用于在编译期间进行类型信息的查询和转换。它可以帮助我们编写更加通用和可靠的代码,避免了很多运行时类型检查和转换的开销。
中文官方网址
zh.cppreference
头文件
#include <type_traits>
基本类型特性
以下模板类和函数用于判断基本类型的特性:
模板类/函数
描述
std::is_void
是否为void类型
std::is_integral
是否为整数类型
std...
代码格式化工具clang-format的安装和使用
简介
clang-format是一个由LLVM项目提供的代码格式化工具,可以自动化地格式化C、C++、Objective-C、Java、JavaScript和Protobuf等语言的代码。它可以根据自定义的风格规则,将代码自动格式化成统一的风格,提高代码的可读性和可维护性。
安装
Linux
在Linux系统中,我们可以使用包管理工具来安装clang-format。
在Debian/Ubuntu系统中,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install clang-format
在Fedora系统中,可以使用以下命令安装:
sudo dnf install clang-tools-extra
macOS
在m...
共计 73 篇文章,10 页。