Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';t使用Emscripten编译GMP库(2)_C++_Gmp_Emscripten - Fatal编程技术网

C++ Can';t使用Emscripten编译GMP库(2)

C++ Can';t使用Emscripten编译GMP库(2),c++,gmp,emscripten,C++,Gmp,Emscripten,我有点新手。我的系统是OSX 我让emscripten使用SDL2,这太棒了。我使用命令编译: ./emcc /Users/elliotmacneille/Projects/the\ simplifier/the\ simplifier/main.cpp -s USE_SDL=2 -s LEGACY_GL_EMULATION=1 -std=c++11 -o money99.html 从emscripten目录中的命令行 现在我想让GMP与之合作。我的电脑上有头文件libgmp.a和libgmp

我有点新手。我的系统是OSX

我让emscripten使用SDL2,这太棒了。我使用命令编译:

./emcc /Users/elliotmacneille/Projects/the\ simplifier/the\ simplifier/main.cpp -s USE_SDL=2 -s LEGACY_GL_EMULATION=1 -std=c++11 -o money99.html
从emscripten目录中的命令行

现在我想让GMP与之合作。我的电脑上有头文件libgmp.a和libgmp.10.dylib,但我不知道把它们放在哪里。 我还使用emscripten制作了一个gmp.js,同样也不知道放在哪里

每当我尝试编译时,我都会得到以下结果:

"fatal error: 
      'gmp.h' file not found
#include <gmp.h>
         ^
1 error generated."
“致命错误:
未找到“gmp.h”文件
#包括
^
1生成错误。“
我应该把头文件放在哪里?我应该把什么库放在哪里?
在Xcode中编译libgmp没有问题,但我想使用emscripten。

您必须告诉编译器库头在哪里使用
-I
命令行选项,然后使用
-l
命令行选项链接到哪些库。比如:

emcc myfile.cpp -o myoutput.html -Lpath/to/gmp/include -lgmp
这不是特定于emscripten的:这是像GCC和LLVM这样的C/C++编译器通常的工作方式。你不必为SDL这么做,因为

不过,您不能只使用
libgmp.a
libgmp.10.dylib
!这些目标是x86(或者至少在Mac上是这样),您希望它们是LLVM位码或JavaScript。似乎没有一个易于使用的gmp端口,因此最简单的方法可能是


gmp通常使用内联程序集生成,但您可以从其生成中禁用此功能。签出并对自己的构建执行相同的操作可能会很有用。

我找到了头文件…我将所有gmp都放在了…emscripten/incoming/system/local/include中。我仍然不知道把图书馆放在哪里。我现在得到的错误是:警告:未解析的符号:警告:未解析的符号:警告:未解析的符号:未解析的符号:abs警告:未解析的符号:添加警告:未解析的符号:清除警告:未解析的符号:未解析的符号:设置strby“-I”你的意思是“-L”