执行make命令以创建moses \ scripts \ training \ memscore时出错

时间:2013-04-02 11:25:21

标签: c++ boost cygwin

我必须实现机器翻译系统,因此我计划使用摩西,但在Cygwin上执行make命令时遇到跟随错误:

Administrator@diebold-69b7050 /cygdrive/c/JT/NewSetup/Moses/moses-2010-08-13/moses/scripts/training/memscore$ make
make  all-am
make[1]: Entering directory `/cygdrive/c/JT/NewSetup/Moses/moses-2010-08-13/moses
scripts/training/memscore'
g++ -I/usr/include -Wall -ffast-math -ftrapping-math -fomit-frame-pointer -g -O2    -o memscore.exe  phrasetable.o memscore.o  scorer.o lexdecom.o      -lz -lm
phrasetable.o: In function `_ZlsRSoRK15PhraseAlignment':
/cygdrive/c/JT/NewSetup/Moses/moses-2010-08-13/moses/scripts/training/memscore/phrasetable.cpp:111: undefined reference to `boost::system::system_category()'
phrasetable.o: In function `__tcf_0':
/cygdrive/c/JT/NewSetup/Moses/moses-2010-08-13/moses/scripts/training/memscore/datastorage.h:31: undefined reference to `boost::system::system_category()'
phrasetable.o: In function `_ZN14PhrasePairInfo12realloc_dataEj':
/usr/include/boost/pool/simple_segregated_storage.hpp:97: undefined reference to `boost::system::system_category()'
phrasetable.o: In function `_ZNK14PhrasePairInfo14get_alignmentsEv':

请不要给我一些像链接器错误的建议,因为我完全不喜欢尝试使用链接器选项。

我想,我有一些Cygwin-> Boot库问题。你能告诉我哪里错了吗?

1 个答案:

答案 0 :(得分:1)

您正在编辑-lboost_system编译命令。

某些boost库只是标题。其他人需要编译。图书馆有时相互依赖。在这种情况下,您正在使用一些需要-lboost_system的boost库。添加它以便它与您的项目链接。

它应该在这一行。链接完成的地方

g++ -I/usr/include -Wall -ffast-math -ftrapping-math -fomit-frame-pointer -g -O2 -o memscore.exe  phrasetable.o memscore.o  scorer.o lexdecom.o  **-lboost_system** -lz -lm