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: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
существует, но я все еще получаю ту же ошибку.
Есть идеи, что я делаю не так?
1 ответ
Попробуйте выполнить gcc -v -x c -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)
Так что если бы я gmp.h
в /usr/include/x86_64-linux-gnu/
тогда мой компилятор C не нашел бы его. Я бы предложил переместить ваш.h файл в каталог, который находится по этому пути поиска (например, /usr/local/include
в моем случае) или переходя в -I /usr/include/x86_64-linux-gnu/
флаг, который потребует изменения скриптов сборки MLton. Скорее всего, вам придется делать то же самое с libgmp.a
когда приходит время ссылаться