Linux下编译的那些事

来源:互联网 发布:linux 如何安装xampp 编辑:程序博客网 时间:2024/06/05 09:17

小编在Linux环境下编译曾经遇到过一些问题,在这里做一点小小的总结



C与C++:

基础编译指令
cc -o demo demo.c
运行指令
./demo
./demo< txt

  1. 编译.c文件时,如果使用了math.h里的函数,则需要在编译命令结尾加-lm
    cc -o demo demo.c -lm
  2. 编译.c文件时,如果使用bool类型变量,则要使用g++编译器 g++ -o demo demo.c
  3. 编译.c++文件时,使用g++编译器,gcc没有用 g++ -o demo demo.c




Lex:

• lex –o demo.c demo.l
• gcc –ll demo.c –o demo
• ./demo

如果编译时报错:lex.yy.c: undefined reference to `yywrap’

那么在.l文件结尾添加int yywrap(){ return(1); } 即可



Yacc:

yacc –d t.y
gcc t.tab.c -ly -ll

编译时可能会遇到如未定义指令或者找不到某类文件,这时只要去下载或者移动一些usr里的文件。这里情况比较多,大家可以去根据自己遇到的情况去网上找答案,网上的教程很多。




语言库训练:

训练样本大家可随意选择,这里小编载给大家推荐一个网站,可以在这里下载训练的样本
https://www.wsatmt.org/europarl/
srilm可以到网上去搜索

(需要对..\srilm-1.7.1\visual_studio中的文件先进行编译,对于不同的计算机可能不出现不同的编译错误,导致..\srilm-1.7.1\bin\Debug中文件缺失,有些确实是不影响的,有些则会导致之后的编译报错)

操作步骤:

  1. 进入srilm文件夹..\sriml
  2. 再进入..\srilm-1.7.1\bin\Debug
  3. 依次输入命令
    -词频统计
    ngram-count -text europarl-v7.es-en.en -order 3 -write file.count
    -模型训练
    ngram-count -read file.count -order 3 -lm file.lm -interpolate -kndiscount
    -测试(困惑度计算)
    ngram -ppl testfile.txt -order 3 -lm file.lm -debug 2 > file.ppl



1 0