簡體   English   中英

Xcode 12:如何鏈接為獨立構建的目標文件

[英]Xcode 12: how to link against object files built for free standing

問題是關於將 x86_64 macOS 可執行文件靜態鏈接到 libavcodec、libavdevice 等,這些文件有一些針對獨立構建的目標文件,因為它們使用 YASM 無法在二進制文件中嵌入 macOS“標簽”(請參閱為 macOS 構建,但是鏈接為獨立構建的目標文件,以獲取有關該問題的詳細信息)。

在 Xcode 11.6 下一切正常——這里有以下消息,但它們是警告。 隨着 Xcode 12 更新,它們變成了一個錯誤。 如何讓他們再次警告? 我在 ld 手冊頁中找不到任何相關內容。

ld:在 ffmpeg/lib/libavcodec.a(aacncdsp.o) 中,為 macOS 構建,但鏈接為獨立構建的目標文件,用於體系結構 x86_64

我發現沒有任何選項可以將錯誤恢復為警告。 Apple 現在已經針對 XCode 的幾個版本就這個問題向我們發出警告,並且警告已經變成了一個錯誤。

在修改 NASM 或者我們可以使用其他一些匯編程序之前,允許我在我的應用程序中構建和鏈接 libav 庫的唯一選項是在編譯 ffmpeg 時禁用匯編。

./configure --disable-asm

這適用於我的情況,因為非匯編代碼路徑的性能在我的桌面創作工具中是可以接受的。 基於服務器的渲染器仍然使用匯編代碼路徑,因為它是基於 linux 的。

您可能必須配置包含在 ffmpeg 構建中的任何庫以禁用程序集。

再一次,這對於我的案例來說是一個可以接受的解決方案,因為非匯編代碼路徑對於我的用例來說足夠快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM