Sml mlton给出了与库相关的错误

Sml mlton给出了与库相关的错误,sml,mlton,Sml,Mlton,当我试图用mlton编译一个程序时,我得到了一个错误 ~/projects/serve-sml $ mlton server.mlb In file included from /usr/lib/mlton/include/platform.h:13:0, from /usr/lib/mlton/include/common-main.h:16, from /usr/lib/mlton/include/amd64-main.h:

当我试图用
mlton
编译一个程序时,我得到了一个错误

~/projects/serve-sml $ mlton server.mlb
In file included from /usr/lib/mlton/include/platform.h:13:0,
                 from /usr/lib/mlton/include/common-main.h:16,
                 from /usr/lib/mlton/include/amd64-main.h:11,
                 from /tmp/file86PWQJ.1.c:110:
/usr/lib/mlton/include/cenv.h:137:17: fatal error: gmp.h: No such file or directory
 #include "gmp.h"
                 ^
compilation terminated.
call to system failed with exit status 1:
gcc -std=gnu99 -c -I/usr/lib/mlton/targets/self/include -I/usr/lib/mlton/include -O1 -fno-common -fno-strict-aliasing -fomit-frame-pointer -w -m64 -o /tmp/fileg5D5To.o /tmp/file86PWQJ.1.c
~/projects/serve-sml $ 
根据,这意味着我应该安装
libgmp3-dev
。我已经运行了
apt get install libgmp3 dev
,并验证了文件
/usr/include/x86_64-linux-gnu/gmp.h
是否存在,但仍然收到相同的错误


知道我做错了什么吗?

试着在终端中执行
gcc-v-xc-E-
。这将打印出C编译器正在使用的头文件搜索路径。我得到的结果是:

#include "..." search starts here:
#include <...> search starts here:
/Users/ml9951/include
.
/usr/local/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.1.0/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
#包括“…”搜索从这里开始:
#包括搜索从这里开始:
/用户/ml9951/include
.
/usr/本地/包括
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/./lib/clang/6.1.0/include
/Applications/Xcode.app/Contents/Developer/toolschains/xcodefault.xctoolschain/usr/include
/usr/包括
/系统/库/框架(框架目录)
/库/框架(框架目录)
因此,如果我在
/usr/include/x86_64-linux-gnu/
中有
gmp.h
,那么我的C编译器将找不到它。我建议将您的.h文件移动到此搜索路径上的目录中(在我的例子中,类似于
/usr/local/include
),或者传入
-I/usr/include/x86_64-linux-gnu/
标志,这需要修改MLton的构建脚本。很有可能,当需要链接时,您将不得不对
libgmp.a
执行相同的操作

全面纠正(并且您预测了
libgmp.a
问题)。我已经运行了
nix
,所以我的搜索路径有点复杂。我最后做的是将
/usr/lib/x86_64-linux-gnu/libgmp.a
符号化为
/nix/store/nrxygyy0wqski1kl0305d3h523k41ps-glibc-2.20/lib
,并将
/usr/include/x86_64-linux-gnu/gmp.h
符号化为
/nix/store/nrxygyy0wqski1kl0305d3h523k41ps-glibc-2.20/include
(这两个都在你告诉我如何查找的搜索路径上)。我现在可以按预期编译了。希望不会因此而爆炸。。。