簡體   English   中英

錯誤:在構建 Mesos 中無法識別命令行選項“-Wno-invalid-source-encoding”[-Werror]

[英]Error: unrecognized command line option ‘-Wno-invalid-source-encoding’ [-Werror] within building Mesos

我的操作系統是 Ubuntu 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=sizeof-pointer-memaccess]

 sizeof(src->local_dev_name));
             ^

third_party/cares/cares/ares_init.c:在頂層:

cc1:錯誤:無法識別的命令行選項“-Wno-invalid-source- encoding”[-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: all-recursive] 錯誤 1

make[2]: 離開目錄 '/home/spark/mesos-1.7.0/build/3rdparty'

make[1]: *** [Makefile:765: all] 錯誤 2

make[1]: 離開目錄 '/home/spark/mesos-1.7.0/build/3rdparty'

make: *** [Makefile:768: all-recursive] 錯誤 1

問題解決了。 問題是因為 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,並且安裝沒有任何錯誤。 我希望這個插圖對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM