c++ - 执行 make 命令创建 moses\scripts\training\memscore 时出错

标签 c++ boost cygwin

我必须实现机器翻译系统,因此我计划使用 moses,但在 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-> 引导库问题。你能告诉我我哪里错了吗?

最佳答案

您在编译命令中输入 -lboost_system

一些 boost 库只有 header 。其他的需要编译。图书馆有时相互依赖。在这种情况下,您正在使用一些需要 -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  

关于c++ - 执行 make 命令创建 moses\scripts\training\memscore 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15762876/

相关文章:

java.lang.RuntimeException : java. lang.InstantiationException 使用 cygwin 在 eclipse 上运行 mapreduce 代码

c++ - 为什么在 C++ 中将类分解为多个源文件?

c++ - 一直读到 boost::asio::streambuf 中的字符串定界符

c++ - 如何将 sqrt 和 ceil 与 Boost::multiprecision 一起使用?

c++ - 提取大型库的小部分(fx boost)

java - windows下运行hadoop作业

python - 使用Python直接向USB发送信号

c++ - 如何让 Qt Creator 的调试器在 OS X 中显示 C++ vector 的内容?

c++ - 如果我们可以使用 vector[1] = someInt,那么 emplace() 的目的是什么?

gcc - 使用Cygwin gcc编译+链接自定义操作系统:无法识别的仿真模式:elf_i386