我使用以下命令进行编译:
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/