所以我试图使用emscripten编译以下代码:
// this is test.cpp
#include<iostream>
#include<string.h>
#include<fstream>
#include<tr1/unordered_map> //needed to use unordered maps in C++. not needed C++11 onwards
#include "C:Users<myusername>DocumentsPROGRAMMINGexamplefolderpugixml-1.11srcpugixml.hpp"
#include <ctime>
#include <chrono>
int main()
{
std::cout<<"DIS IS DA TEST";
return 0;
}
我实际的代码要大得多,但我在这里把它缩短了,以强调我的主要疑虑(我已经留下了我正在使用的所有头文件(。这段代码使用g++进行了完美的编译,并给出了所有预期的输出。
但当我使用emcc test.cpp -s WASM=1 -o TRY.html
将其编译为web程序集时,它会给我以下错误:
test.cpp:4:9: fatal error: 'tr1/unordered_map' file not found
#include<tr1/unordered_map> //needed to use unordered maps in C++. not needed C++11 onwards
^~~~~~~~~~~~~~~~~~~
1 error generated.
emcc: error: 'C:/Users/vargh/emsdk/upstream/binclang++.exe -DEMSCRIPTEN -fignore-exceptions -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -Xclang -iwithsysroot/include/SDL -target wasm32-unknown-emscripten -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=15 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__unix__ -flegacy-pass-manager -Werror=implicit-function-declaration --sysroot=C:Usersvarghemsdkupstreamemscriptencachesysroot -Xclang -iwithsysroot/includecompat test.cpp -c -o C:Users<myusername>AppDataLocalTempemscripten_temp_e9j9ld9xtest_0.o' failed (1)
为什么emcc找不到此文件?在C++中有没有另一种处理未定义映射的方法
我使用tr1是因为我在堆栈溢出问题中遇到了相同的错误:C++错误:';无序映射';没有命名类型
有人能帮我吗?
为什么emcc找不到此文件?在C++中有没有另一种处理未定义映射的方法?
因为它在2011年移动到<unordered_map>
。
如果它不在任何一个地方,你就会有一个非常古老的叮当声,而且它没有unordered_map
。