【问题标题】:libsndfile Emscripten environmentlibsndfile Emscripten 环境
【发布时间】:2022-01-19 12:39:52
【问题描述】:

我在 emscripten 环境中使用 libsndfile 运行了一小段代码

#include <iostream>
#include <sndfile.h>

int main() 
{
    SF_INFO info;
    const char * path = "~/data/somefile.wav";
    SNDFILE* sf = sf_open(path,SFM_READ, &info);
    if(sf == NULL) 
    {
        std::cout<< sf_strerror(sf) << std::endl;
        return 1;
    }

    std::cout<<info.samplerate<<std::endl;
    
    std::cout<<"Hello world" << std::endl;
}

所以理想情况下,如果我使用普通的 cmake(Apple Clang 编译器)运行它,一切正常,sampleratehello world 会打印出来,但是当我使用 emcmake cmake(em++ 编译器)运行它并运行编译的node main.js 文件显示System error: no such file or directory。谁能帮我解决这个问题?谁有过这样的经历?

【问题讨论】:

    标签: c++ cmake emscripten libsndfile emcmake


    【解决方案1】:

    所以我想通了。

    问题是Emscripten 有它的虚拟文件环境。因此,如果您希望此文件被上传并稍后在编译后的.js 文件中看到,您需要添加编译标志--preload-file &lt;FILE_PATH&gt;,之后是具有给定路径的文件 将被 emscripten 环境识别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2021-07-23
      • 2014-08-06
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多