实现JAMR文本生成器时安装cdec遭遇make错误求助
解决cdec编译时make报错的问题
看起来你遇到的问题大概率是cdec的configure没有正确识别你手动编译的boost库,或者gcc版本的环境变量没有配置到位,导致编译阶段依赖缺失。我给你梳理几个针对性的解决步骤:
1. 确认gcc-4.8是当前默认编译器
首先确保你的shell环境确实在使用gcc-4.8,执行以下命令检查:
gcc --version g++ --version
如果输出不是4.8版本,需要手动指定环境变量(路径根据你的gcc安装位置调整,比如系统自带的可能在/usr/bin/,自己编译的可能在~/prefix/sw/bin/):
export CC=/usr/bin/gcc-4.8 export CXX=/usr/bin/g++-4.8
设置完后再重新检查版本,确保生效。
2. 重新执行configure,指定boost的安装路径
你在~/prefix/sw编译了boost,但默认情况下configure会去系统路径找依赖,所以必须明确告诉它boost的位置。回到jamr/tools/cdec目录,先清理之前的配置:
make clean rm -rf config.log config.status
然后执行configure,带上boost的路径参数:
./configure --with-boost=~/prefix/sw
执行完后,仔细看configure的输出,找到类似checking for Boost version >= 1.41... yes的信息,确认boost被正确检测到了。
3. 重新编译cdec
如果configure成功检测到所有依赖,就可以重新编译了:
make -j$(nproc)
$(nproc)会自动使用你CPU的所有核心,加快编译速度。
额外排查:确保boost是用gcc-4.8编译的
如果你之前编译boost的时候用的是旧的gcc5.x版本,现在换gcc4.8可能会有兼容性问题。这种情况下需要重新编译boost:
cd ~/prefix/sw/boost_1_58_0 make clean ./bootstrap.sh --with-toolset=gcc-4.8 ./b2 toolset=gcc-4.8 install --prefix=~/prefix/sw
重新编译完boost后,再回到cdec目录重复步骤2和3。
如果还是报错,可以把make时的错误日志贴出来,这样能更精准定位问题,但先试试上面的步骤,应该能解决大部分常见的编译依赖问题。
内容的提问来源于stack exchange,提问作者Ritwik
相关产品推荐
相关产品推荐

