WebAssembly |错误:'C / ObjC'

时间:2018-04-23 05:13:14

标签: c++ c c++11 emscripten webassembly

我有一个包含C ++和C文件的项目,我使用此命令从Emscripten的命令行编译:

emcc -s WASM=1 -o output.html -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'cwrap', 'Pointer_stringify']" -s ASSERTIONS=1 -O1 -O2 -O3 -std=c++11 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=1  file1.cpp file2.c

我需要使用c ++ 11来实现此功能,但由于某些文件位于C中,因此会出现此错误:

error: invalid argument '-std=c++11' not allowed with 'C/ObjC'

有什么方法可以告诉编译器只将C ++ 11用于C ++文件而不是C文件?

1 个答案:

答案 0 :(得分:-1)

是的,您可以use the environment variable CXXFLAGS这样做。

实际上,在您的情况下,您应该将命令行一分为二:一个用于 C++ 文件,一个用于 C 文件。这是我们通常在 Makefile 中找到的内容。