Я пытаюсь скомпилировать CRF ++ v0.51, который поставляется с ParsCit. configure
ничего не показывается, однако, когда я пытаюсь make
Я получаю эту ошибку:
make all-am
make[1]: Entering directory `/path/to/parscit/crfpp/CRF++-0.51'
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -O3 -Wall -Wno-deprecated -c -o node.lo node.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -O3 -Wall -Wno-deprecated -c node.cpp -fPIC -DPIC -o .libs/node.o
In file included from node.h:13:0,
from node.cpp:9:
path.h:26:52: error: 'size_t' has not been declared
make[1]: *** [node.lo] Error 1
make[1]: Leaving directory `/path/to/parscit/crfpp/CRF++-0.51'
make: *** [all] Error 2
Я смог скомпилировать более новую версию CRF ++ v0.58, но ParsCit, похоже, нуждается в v0.51.
Основываясь на ответах, я сначала добавил импорт «stdlib.h» и импорт < iostream> строки как для node.cpp, так и для path.cpp в конце списка импорта. Но это не сработало. Затем (если немного повезло) подумал добавить строки импорта в начале списка импорта в обоих этих файлах. И BRAVO !!!, это сработало. ВНИМАНИЕ: Я не уверен, сработали ли stdlib или iostream, но какой из них сработал, можно легко определить.
Вы должны попробовать добавить #include<iosteream>
в файле ‘node.cpp’ и снова скомпилируйте crf ++, как указано в поиск проблемы стр.
Надеюсь, это поможет.
Включите заголовочный файл stdlib.h в файл path.h.
Это сработало для меня.