簡體   English   中英

使用 Emscripten 構建時如何包含庫 header?

[英]How to include library header when building with Emscripten?

我正在嘗試在 Ubuntu 18.04 上構建codecbox.js ,這涉及使用 emcc 構建 FFmpeg。 我一直被誤導性的libmp3lame >= 3.98.3 not found錯誤困擾 就我而言,libmp3lame 安裝沒有問題。 進一步排查FFmpeg的configure腳本后,發現下面的測試文件用emcc編譯失敗:

#include <lame/lame.h>
#include <stdint.h>

long check_lame_set_VBR_quality(void) { return (long) lame_set_VBR_quality; }
int main(void) {
    int ret = 0;
    ret |= ((intptr_t)check_lame_set_VBR_quality) & 0xFFFF;
    return ret;
}

我收到fatal error: 'lame/lame.h' file not found

我在/usr/include/lame中找到了 header 所以我嘗試使用emcc -I/usr/include進行編譯。 這消除了錯誤,但引入了許多其他錯誤。

然后我讀到( 例如這里)我不應該使用本地系統頭文件,當我添加選項-I/usr/include時會發生這種情況。

那么,在使用 SDK 中提供的 Emscripten 捆綁系統頭文件時,確保 emcc 找到我的庫 header 的正確方法是什么?

/usr/include/lame聽起來您正在使用系統安裝來構建它。 但是,您不應該使用任何系統范圍的包構建 emscriten 模塊。 想象一下,您將 emscripten 編譯的 package 分發到 web,而不是其他人的桌面。 您可能想手動獲取 ffmpeg 和其他相關庫的源代碼。

暫無
暫無

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

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