C++ Can';t使用Emscripten编译GMP库(2)
我有点新手。我的系统是OSX 我让emscripten使用SDL2,这太棒了。我使用命令编译: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
./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”