错误:构建Mesos时无法识别的命令行选项'-Wno-invalid-source-encoding'[-Werror]

时间:2019-01-09 08:18:28

标签: c++ ubuntu apache-kafka apache-flink mesos

我想在Mesos群集上设置Flink进行资源管理。实际上,我有一个由三个节点组成的Kafka集群。我想与Mesos群集共享Kafka群集,因此我必须在Kafka群集的每个节点上安装Mesos。我的操作系统是ubutnu 18.10。我在三个节点上执行以下步骤: 要安装Mesos,我一步一步地完成了这些步骤,没有任何错误,除了每个节点都已经安装了Open JDK 8,因此我没有再次安装Open JDK 8。

  sudo apt-get update
   sudo apt-get install -y tar wget git
   sudo apt-get install -y openjdk8-jdk (I did not do that)
   sudo apt-get install -y autoconf libtool
   sudo apt-get -y install build-essential python-dev python-six python- 
   virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven 
   libapr1-dev libsvn-dev zlib1g-dev iputils-ping

问题是我要构建Mesos时开始的。为此,我做了以下步骤:

cd mesos-1.7.0
./bootstrap
mkdir build
cd build
../configure
make

我的IP地址是150.20.11.137,150.20.11.134,150.20.11.157。我在所有的包上都下载了Mesos包,并以相同的路径提取。 我在每个节点上都做了<../ configure>,没有任何问题,但是当我运行“ make”时,我在每个节点上都遇到了这个错误:

  

third_party / cares / cares / ares_init.c:在“ ares_dup”函数中:   third_party / cares / cares / ares_init.c:301:17:错误:   “ strncpy”调用中“ sizeof”的参数与源的表达式相同;做了       您的意思是使用目的地的大小? [-Werror = pointer-pointer-       memaccess]

       sizeof(src->local_dev_name));
             ^
     

third_party / cares / cares / ares_init.c:在顶层:

     

cc1:错误:无法识别的命令行选项'-Wno-invalid-source-       编码” [-Werror]       cc1:将所有警告视为错误

     

make [4]:*** [Makefile:2635:/ home / spark / mesos-       1.7.0 / build / 3rdparty / grpc-       1.10.0 / objs / opt / third_party / cares / cares / ares_init.o]错误1

     

make [4]:离开目录'/ home / spark / mesos-       1.7.0 / build / 3rdparty / grpc-1.10.0'

     

make [3]:*** [Makefile:1446:grpc-1.10.0-build-stamp]错误2

     

make [3]:离开目录'/home/spark/mesos-1.7.0/build/3rdparty'

     

make 2]:*** [Makefile:1035:全部递归]错误1

     

make [2]:离开目录'/home/spark/mesos-1.7.0/build/3rdparty'

     

make [1]:*** [Makefile:765:全部]错误2

     

make [1]:离开目录'/home/spark/mesos-1.7.0/build/3rdparty'

     

make:*** [Makefile:768:全部递归]错误1

请告诉我如何解决这个问题?

先谢谢您。

1 个答案:

答案 0 :(得分:0)

问题解决了。问题是由于GCC版本。 Ubuntu 18.10中的GCC版本是8.2.0。我按照以下说明安装了gcc-5和g ++-5:

 sudo add-apt-repository ppa:ubuntu-toolchain-r/test
 sudo apt-get update
 sudo apt-get install gcc-5 g++-5

然后选择我想要的GCC版本,我必须为gcc安装“ update-alternatives”。因此,我运行以下命令:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 500 --slave 
/usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave 
/usr/bin/g++ g++ /usr/bin/g++-8

之后,我通过以下命令选择了gcc-5:

sudo update-alternatives --config gcc

此外,我遇到了与OpenSSL相关的错误;然后我通过以下命令安装了它:

sudo apt-get install libssl-dev

进行这些修改之后,我开始安装Mesos,并且已成功安装它。我希望这个插图对其他人有帮助。