使用“sh ./configure”命令后,我在lbflow 包安装(科学安装)。
操作顺序如下,但有错误:
./configure --disable-gts
sudo make
[sudo] password for alireza:
make all-recursive
make[1]: Entering directory `/home/alireza/lbflow-1.1'
Making all in src
make[2]: Entering directory `/home/alireza/lbflow-1.1/src'
source='lbflow.cpp' object='lbflow-lbflow.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
g++ -DHAVE_CONFIG_H -I. -I. -I.. -c -o lbflow-lbflow.o `test -f 'lbflow.cpp' || echo './'`lbflow.cpp
**../depcomp: line 432: exec: g++: not found**
**make[2]: *** [lbflow-lbflow.o] Error 127
make[2]: Leaving directory `/home/alireza/lbflow-1.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/alireza/lbflow-1.1'
make: *** [all] Error 2**
您有什么办法可以解决这个问题吗?
(请注意,我已经安装了 g++ 和 gcc。它说 g++:未找到,但我已经从 Ubuntu 软件中心安装了 g++!)
答案1
使用 检查是否g++
已安装dpkg --list | grep g++
。就我的情况而言:
ii g++ 4:4.6.3-1ubuntu5 GNU C++ compiler
ii g++-4.6 4.6.3-1ubuntu5 GNU C++ compiler
ii
代表已安装。然后使用 检查which g++
,它应该输出类似以下内容的内容:
/usr/bin/g++
如果 which 命令没有输出任何内容,则表示未安装或存储二进制文件的补丁不在您的$PATH
变量中。
安装g++
编译器:
sudo apt-get install build-essential
g++ --version
最后,就我的情况而言,最后的检查应该是:
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
如果一切正常,则说明您的编译器一切正常。g++
安装并可用后,重试 ./configure 和 make 命令。如果成功,请告诉我。
编辑编译错误:
所以我明白了。我从另一个论坛整理了你尝试编译的包,并自己编译了它。问题是,gcc 已经清理了头文件依赖关系,因此对于 gcc 版本 >=4.3,某些代码不再编译。请参阅http://gcc.gnu.org/gcc-4.3/porting_to.html了解要包含哪些内容以避免编译错误。在执行 ./configure 和 make 命令的文件夹中,打开文件src/parser.h
file 并将以下行添加到第 15 行下的 include 语句中#include <iostream>
:
#include <iostream>
#include <sys/types.h>
#include <stdio.h>
#include <cstdlib>
#include <algorithm>
然后再次运行 make 命令。它应该不会失败。在我的测试中它是成功的。