gcc - 如何在 Emscripten 中设置 gcc 标志

标签 gcc emscripten emcc

我使用以下命令进行编译:

gcc -Wall -march=native -O3 -ffast-math -I/usr/local/include -I/usr/local/include -o waon main.o notes.o midi.o analyse.o fft.o hc.o snd.o -L/usr/local/lib -L/usr/local/lib -lfftw3 -L/usr/local/lib -lsndfile -lm

我现在想用 Emscripten 进行编译。如何将上述 gcc 命令转换为 emcc 命令?

最佳答案

您在问题中描述的命令是链接而不是编译。但一般来说,您应该能够用 emcc 替换 gcc ,它就会做正确的事情。在这种情况下,您不仅需要替换此链接命令,还需要替换用于将源代码编译为 .o 文件的命令。

去掉 -march 选项可能是个好主意。

看起来您的项目正在使用 libsndfile 和 FFTW。您可能需要使用 emscripten 自己编译这些库。它们都使用自动工具,因此如果幸运的话,您只需在运行配置脚本时添加以下参数即可使用 emscripten 编译它们:

./configure --prefix=$HOME/emscripten-libs CC=emcc
make && make install

然后,当您链接程序时,您可以指定 -L$HOME/emscripten-libs/lib 而不是 -L/usr/local/lib

关于gcc - 如何在 Emscripten 中设置 gcc 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37422269/

相关文章:

c++ - 如何为忘记的返回语句打开 gcc 警告?

带有 Emscripten 和 vcpkg 的 CMake 无法绑定(bind)两个 TOOLCHAIN_FILES

c++ - Webassembly - 尝试编译代码缓冲区并通过 EM_JS 通过 C 执行它

emscripten - WebAssembly 链接错误 : _sprintf function import requires a callable

c - 使用 toupper() 时遇到段错误

c++ - 返回元素是否比通过引用发送它们并在那里修改慢?

C++ Lambda 导致 'candidate function not viable:'

c - webassembly (C) 如何创建配置文件?

使用未初始化的值时,编译器会发出警告吗?

c++14 - Emscripten 和 C++14