ffmpeg下编译tsan

如何在ffmpeg下编译tsan,如下配置:

bash 复制代码
./configure \
    --prefix=/workspace/ffmpeg_gcu \
    --disable-stripping \
    --disable-optimizations \
    --disable-x86asm \
    --toolchain=gcc-tsan \
    --enable-pic \
    --enable-swscale \
    --enable-static \
    --enable-shared 

结果出现下面错误,提示找不到libtsan_preinit.o:

bash 复制代码
BEGIN /tmp/ffconf.l64ruLdY/test.c
    1	int main(void){ return 0; }
END /tmp/ffconf.l64ruLdY/test.c
gcc -fsanitize=thread -fPIC -g0 -O3 -DNDEBUG -Wl,--build-id -c -o /tmp/ffconf.l64ruLdY/test.o /tmp/ffconf.l64ruLdY/test.c
gcc -fuse-ld=gold -ldl -lpthread -Wl,--build-id -fsanitize=thread -fPIC -o /tmp/ffconf.l64ruLdY/test /tmp/ffconf.l64ruLdY/test.o
/usr/bin/ld.gold: error: cannot open libtsan_preinit.o: No such file or directory
collect2: error: ld returned 1 exit status
C compiler test failed.

安装tsan,并且测试

bash 复制代码
# 安装
$ apt-get install libtsan0 libtsan-dev

# 测试
$ echo "int main(){return 0;}" | gcc -x c -fsanitize=thread - -o /dev/null
/usr/bin/ld: cannot find libtsan_preinit.o: No such file or directory
collect2: error: ld returned 1 exit status

寻找:

bash 复制代码
# 查找
$ find /usr -name "libtsan_preinit.o"
/usr/aarch64-linux-gnu/lib/libtsan_preinit.o

# 查看机器类型
$ gcc -dumpmachine
x86_64-linux-gnu

后来才知道libtsan0:aarch64-linux-gnu 是 aarch64 版本的 TSAN 库。

解决方案:

把上面的--toolchain=gcc-tsan \替换为--toolchain=clang-tsan \

相关推荐
Mister Leon1 天前
FFmpeg - Jetson Orin 实战部署
ffmpeg
阿拉斯攀登2 天前
售货柜实战:IPC 拉流 → 抽帧 → YOLO 识别完整流水线
yolo·ffmpeg·音视频·webrtc·视频编解码
阿拉斯攀登3 天前
RTSP 拉流与录制:IPC 摄像头本地录像完整方案
ffmpeg·音视频·webrtc·实时音视频·视频编解码
坐望云起3 天前
FFmpeg.wasm 纯浏览器端视频压缩与格式转换实战:零服务器、零上传、100% 隐私
服务器·ffmpeg·wasm
阿拉斯攀登4 天前
FFmpeg 转码详解:封装格式、编码器、码率控制
ffmpeg·音视频·webrtc·实时音视频·视频编解码
阿拉斯攀登4 天前
FFmpeg 入门:命令行的 20 个常用场景
ffmpeg·音视频·webrtc·视频编解码
luoyayun3614 天前
Qt + FFmpeg 音频工具:重采样实现
qt·ffmpeg·重采样
薄荷椰果抹茶6 天前
计算机导论_第6章_笔记
笔记·ffmpeg
FlightYe6 天前
FFmpeg移动端硬解机制
linux·网络·ffmpeg·音视频·实时音视频·视频编解码
小殊小殊7 天前
一文速通GPU版FFmpeg视频转码的安装使用
ffmpeg·音视频·视频编解码