編譯libmp3lame支持SSE指令

碰到的編譯錯誤如下:

lame/libmp3lame/vector/xmm_quantize_sub.c:72:18: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]72 |     const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]);|                  ^~~~~~~~~~~~~
In file included from lame/libmp3lame/vector/xmm_quantize_sub.c:37:
/usr/lib/gcc/x86_64-linux-gnu/13/include/xmmintrin.h:904:1: error: inlining failed in call to ‘always_inline’ ‘_mm_set_ps1’: target specific option mismatch904 | _mm_set_ps1 (float __F)| ^~~~~~~~~~~
lame/libmp3lame/vector/xmm_quantize_sub.c:81:21: note: called from here81 |     vec_sum._m128 = _mm_set_ps1(0);|                     ^~~~~~~~~~~~~~

這個從config.h來看,configure階段會檢測到支持SSE指令,所以HAVE_XMMINTRIN_H為1,在wrapper的Makefile中通過-DHAVE_XMMINTRIN_H=0是不行的。

搜索發現之前有人碰到過,我這里這個問題添加編譯選項即可:

-msse

這個通過后面的網址搜索“_mm_set_ps1 ”函數,通過查找對應的SSE指令集即可:網址,對應的CPUID Flags: SSE,所以參數cflags參數是msse:

__m128 _mm_set_ps1 (float a)Synopsis
__m128 _mm_set_ps1 (float a)
#include <xmmintrin.h>
Instruction: Sequence
CPUID Flags: SSE
Description
Broadcast single-precision (32-bit) floating-point value a to all elements of dst.
Operation
FOR j := 0 to 3i := j*32dst[i+31:i] := a[31:0]
ENDFOR

編譯libmp3lame.a的cflags:

CFLAGS += -DHAVE_CONFIG_H
CFLAGS += $(INCDIR_PREFIX)$(DST_PATH) \$(INCDIR_PREFIX)$(SRC_PATH)/include \$(INCDIR_PREFIX)$(SRC_PATH)/mpglib \$(INCDIR_PREFIX)$(SRC_PATH)/libmp3lame
CFLAGS += -Wno-unused-variable -Wno-unused-but-set-variable \-Wno-stringop-overflow -Wno-array-parameter \-Wno-address -Wno-shadow -msse

libmp3lame的source:

CSRCS	+= \$(SRC_PATH)/libmp3lame/bitstream.c \$(SRC_PATH)/libmp3lame/encoder.c \$(SRC_PATH)/libmp3lame/fft.c \$(SRC_PATH)/libmp3lame/gain_analysis.c \$(SRC_PATH)/libmp3lame/id3tag.c \$(SRC_PATH)/libmp3lame/lame.c \$(SRC_PATH)/libmp3lame/newmdct.c \$(SRC_PATH)/libmp3lame/psymodel.c \$(SRC_PATH)/libmp3lame/quantize.c \$(SRC_PATH)/libmp3lame/vector/xmm_quantize_sub.c \$(SRC_PATH)/libmp3lame/quantize_pvt.c \$(SRC_PATH)/libmp3lame/set_get.c \$(SRC_PATH)/libmp3lame/vbrquantize.c \$(SRC_PATH)/libmp3lame/reservoir.c \$(SRC_PATH)/libmp3lame/tables.c \$(SRC_PATH)/libmp3lame/takehiro.c \$(SRC_PATH)/libmp3lame/util.c \$(SRC_PATH)/libmp3lame/mpglib_interface.c \$(SRC_PATH)/libmp3lame/VbrTag.c \$(SRC_PATH)/libmp3lame/version.c \$(SRC_PATH)/libmp3lame/presets.c \$(SRC_PATH)/mpglib/common.c \$(SRC_PATH)/mpglib/dct64_i386.c \$(SRC_PATH)/mpglib/decode_i386.c \$(SRC_PATH)/mpglib/layer1.c \$(SRC_PATH)/mpglib/layer2.c \$(SRC_PATH)/mpglib/layer3.c \$(SRC_PATH)/mpglib/tabinit.c \$(SRC_PATH)/mpglib/interface.c

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43463.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43463.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43463.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【NLP】利用 RAG 模分塊技術提升文檔處理效能

將大型文檔劃分為較小的部分是一項至關重要但又復雜的任務&#xff0c;它對檢索增強生成 (RAG) 系統的性能有重大影響。這些系統旨在通過結合基于檢索和基于生成的方法&#xff0c;提高輸出的質量和相關性。有效的分塊&#xff0c;即將文檔拆分為可管理的片段的過程&#xff0c…

音頻demo:使用開源項目lame來將MP3數據解碼出PCM數據

1、README 前言 本demo是使用開源項目lame來將MP3數據解碼成PCM數據。&#xff08;環境&#xff1a;x86_64 Ubuntu16.04 64位&#xff09; 注&#xff1a;在下面【參考文章】中的第1篇里面提到解碼出現過異常情況&#xff08;hip: bitstream problem, resyncing skipping xxx…

顯示渲染-OSG框架解析

1.背景介紹 1.1 OSG介紹 OSG的全稱&#xff1a;OpenSceneGraph&#xff0c;它是一個開放源碼&#xff0c;跨平臺的圖形開發包&#xff0c;它為諸如飛行器仿真&#xff0c;游戲&#xff0c;虛擬現實&#xff0c;科學計算可視化這樣的高性能圖形應用程序開發而設計。 它基于場…

Springboot隨機端口配置

網上所有地方都告訴你的錯誤配置: server: port: ${random.int[6008,6009]} 這才是正確配置: server: port: ${random.int(6008,6009)} 如果能解決你的問題請記得點贊&#xff01;讓更多人知道&#xff01;

DNS緩存詳解

目錄 一、緩存分類 1. 客戶端緩存&#xff08;以瀏覽器緩存為列&#xff09; 2. 操作系統緩存 3.本地hosts文件靜態映射 二、DNS查找優先順序 1.瀏覽器查找順序 2.cmd ping查找順序&#xff08;非瀏覽器&#xff09; 一、緩存分類 在一臺終端上&#xff0c;DNS緩存可以…

Android 12系統源碼_設備設置(一)Settings介紹

前言 Settings 類是一個用于訪問和管理設備設置的關鍵類&#xff0c;而作為系統開發人員&#xff0c;經常需要用這個類來做一些系統設備設置&#xff0c;而Settings里面存在著好幾個處理不同領域的設備設置類&#xff0c;那么如何才能結合自己的業務場景正確選擇使用這些設備設…

微信小程序開發跳轉京東,淘寶小程序

沒有淘寶小程序&#xff0c;所以只能提示他復制鏈接網頁打開 跳轉京東小程序 獲取京東小程序 京東小程序appId&#xff1a;wx91d27dbf599dff74 或者點開京東小程序&#xff0c;查看詳情即可獲取到京東的appid 店鋪頁面路徑 店鋪首頁&#xff1a;pages/shop/index/index?…

《無所不能的JavaScript · prototype 原型鏈》

&#x1f4e2; 大家好&#xff0c;我是 【戰神劉玉棟】&#xff0c;有10多年的研發經驗&#xff0c;致力于前后端技術棧的知識沉淀和傳播。 &#x1f497; &#x1f33b; 近期剛轉戰 CSDN&#xff0c;會嚴格把控文章質量&#xff0c;絕不濫竽充數&#xff0c;歡迎多多交流。&am…

OpenWrt入門 (1) - 登錄及ssh命令接入wifi

本文參考自: [OpenWrt 維基]在 OpenWrt 上啟用 Wi-Fi 接入點 --- [OpenWrt Wiki] Enabling a Wi-Fi access point on OpenWrt 需要詳細了解的小伙伴請看原文 基本概念 OpenWrt是適用于嵌入式設備的一個Linux發行版。 相對原廠固件而言&#xff0c;OpenWrt不是一個單一、靜態…

企業如何從無序管理走向精益生產管理?

先來看看企業生產管理無序的弊端有哪些&#xff1f; 數據統計不及時&#xff1a;紙質生產工單&#xff0c;數據難統計&#xff0c;各業務環節問題難定位&#xff0c;影響車間生產效率。生產過程不透明&#xff1a;生產過程數據難監控&#xff0c;生產派工管理混亂&#xff0c;…

【前端】面試八股文——meta標簽

【前端】面試八股文——meta標簽 在HTML文檔中&#xff0c;meta標簽是一個關鍵但常被忽視的元素。它位于文檔的<head>部分&#xff0c;用于提供關于HTML文檔的元數據&#xff08;metadata&#xff09;。這些元數據不會直接顯示在頁面上&#xff0c;但對搜索引擎優化&…

web前端開發——標簽一

今天我來針對web前端開發講解標簽一 Html標簽_標題&段落&換行 注釋標簽&#xff1a;Ctrl/ Ctrl/ &#xff0c;用戶可能會獲取到注釋標簽 注釋的原則: ?和代碼邏輯一致 ?盡量使用中文 ?正能量 標題標簽&#xff1a;<h1></h1> h1-h6 標題標簽有6…

C++線程鎖std::mutex

基本用法 “mutex”是“mutual exclusion”的縮寫&#xff0c;意思是互斥鎖。互斥鎖用于多線程編程中&#xff0c;以確保同一時間只有一個線程能夠訪問某一共享資源&#xff0c;從而避免數據競爭和不一致性。 std::mutex是最基本的互斥鎖&#xff0c;用于保護共享數據。它有兩…

Vue3框架搭建2:axios+typescript封裝

倉庫地址&#xff1a;https://github.com/buguniao5213/LuArch&#xff08;分支代碼未上傳&#xff0c;完整一系列后傳一波&#xff0c;中途有需求可以再傳&#xff09; 1、安裝axios npm install axios2、創建文件 先創建一個文件夾&#xff1a; ├── src/ │ ├── …

51單片機-第二節-數碼管

一、數碼管介紹&#xff1a; 1.什么是數碼管&#xff1f; 多個LED組合成8字顯示器。 2.一位數碼管的引腳&#xff08;只有一個8&#xff09;&#xff1a; 數碼管的引腳為1-10&#xff0c;其中公共極為3,8&#xff0c;其余八位分別對應一個二極管&#xff0c;如下圖&#xff…

Vue2 基礎十Vuex

代碼下載 Vuex 概述 組件之間共享數據的方式&#xff1a; 父組件向子組件傳值&#xff0c;是以屬性的形式綁定值到子組件&#xff08;v-bind&#xff09;&#xff0c;然后子組件用屬性props接收。子組件向父組件傳值&#xff0c;子組件用 $emit() 自定義事件&#xff0c;父組…

JavaScript--local storage存儲的數組不可擴展的問題

數組擴展 問題解析解決辦法總結進一步擴展原因 問題 下列代碼中的points是從本地存儲中獲取到的數據&#xff0c;我想存儲到一個Map并且新增元素的時候報錯 let obj this.objectsManager._objects.get(obstacle.uuid);let points obj.track_points;this.dyObstacleTP.set(ob…

【大模型】大模型相關技術研究—微調

為什么要對大模型進行微調 1.成本效益&#xff1a; o 大模型的參數量非常大&#xff0c;訓練成本非常高&#xff0c;每家公司都去從頭訓練一個自己的大模型&#xff0c;這個事情的性價比非常低。 2.Prompt Engineering 的局限性&#xff1a; o Prompt Engineering 是一種相…

視圖庫對接系列(GA-T 1400)十二、視圖庫對接系列(本級)人員數據推送

背景 人體和非機動車和機動車類似的,只是請求的參數不一樣而已。人員數據推送 接入人員數據推送相對比較簡單,我們只需要實現對應的接口就ok了。 具體如圖: 有增刪改查接口,目前的話 因為我們是做平臺,我們只需要實現添加接口就可以了。 接口實現 service 層 /**** …

軟件工程面向對象 超市管理系統 需求分析 系統設計 課程設計報告

1、引言 系統簡述 超市管理系統的功能主要有前臺管理和后臺管理兩個大塊。其使用對象 有超市管理人員和超市銷售人員兩類。超市管理系統主要為了實現商品輸 入、 輸出管理數據的自動化&#xff0c; 提高商品統計信息的實時性&#xff0c; 減輕人工勞動強 度從而節省人力成本。實…