我正在使用 Ubuntu 18.04.4 LTS,我正在尝试按照他们的在线说明编译一个基于 MATLAB 的程序 (SPM12),我相信我遇到了 GCC 版本“太”的问题新的'。当我到达我的命令所在的过程中的一个步骤时make && make install,我收到以下错误消息:
Warning: You are using gcc version '7.5.0'. The version of gcc is not supported. The version currently supported with MEX is '6.3.x'. For a list of currently supported compilers see: https://www.mathworks.com/support/compilers/current_release.
/usr/bin/ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status
Makefile:247: recipe for target 'spm_sample_vol.mexa64' failed
make: *** [spm_sample_vol.mexa64] Error 255
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激!我不是专家,所以如果你能提供具体的命令来遵循我真的很感激。本
首先尝试找到在所需版本的 GCC 发布后发布的 Ubuntu 版本。你可以在GCC Releases - GNU Project - Free Software Foundation (FSF)上找到 GCC 的发布历史,在Ubuntu version history - Wikipedia上可以找到Ubuntu 的发布历史。
GCC 6.3于 2016 年 12 月 21 日发布,最接近的 Ubuntu 版本是2017 年 4 月发布的Ubuntu 17.04 (Zesty Zapus)。您可以使用 Zesty 的存档来安装它。但自从 Zesty 于 2018 年 1 月结束生命以来,因此,其档案已移至旧版本。要从其存储库安装 GCC 6.3:
添加 Zesty 存储库并禁用 Bionic 的 Universe 存储库,因为它包含 6.4 和 6.5,在尝试安装 6.3 时可能会安装。
echo "deb http://old-releases.ubuntu.com/ubuntu zesty main" | sudo tee /etc/apt/sources.list.d/zesty.list
sudo apt-add-repository -r universe
Run Code Online (Sandbox Code Playgroud)更新可用的包信息并安装 GCC 6.3。
sudo apt update
sudo apt install gcc-6
Run Code Online (Sandbox Code Playgroud)添加 GCC 6 作为 GCC 的替代方案。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 1
Run Code Online (Sandbox Code Playgroud)使用gcc -v. 你应该得到如下输出:
使用内置规范。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper 目标:x86_64-linux-gnu 配置为:../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs - -enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls - -with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object - -disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable- gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr /lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with- ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch- 32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux- gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnumx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnumx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu 线程模型:posix gcc 版本 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)
完成“制作”后,您可以删除已安装的 GCC 6.3 和 Zesty 的存储库信息。并重新启用仿生的 Universe 存储库。
sudo apt purge gcc-6
sudo apt autoremove --purge
sudo rm /etc/apt/sources.list.d/zesty.list
sudo apt-add-repository universe
Run Code Online (Sandbox Code Playgroud)修复/usr/bin/gcc.
ln -sf /usr/bin/gcc-7 /usr/bin/gcc
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
7594 次 |
| 最近记录: |