如何安装gcc-4.3?

是否有简单的方法在Oneiric上安装gcc-4.3? 我真的需要它,因为matlab依赖于我来创建mex文件

我尝试将我的所有resopistories改回Maverick只是为了安装gcc-4.3但我得到了这个错误:

refl_v0p8_linux_and_windows % sudo apt-get install gcc-4.3-multilib libstdc++6-4.3- dev Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: gcc-4.3-multilib : Depends: gcc-4.3 (= 4.3.5-3ubuntu1) but it is not going to be installed Depends: libc6-dev-i386 (>= 2.5) but it is not going to be installed libstdc++6-4.3-dev : Depends: g++-4.3 (= 4.3.5-3ubuntu1) but it is not going to be installed E: Broken packages 

绝对没有必要使用gcc-4.3。 当然,在mex文件创建期间,您始终会收到警告消息:

警告:您正在使用gcc版本“4.6.xx)”。 MEX目前支持的版本是“4.3.4”。 有关当前支持的编译器列表,请参阅: http : //www.mathworks.com/support/compilers/current_release/

但这是一个警告 – MEXfunction仍然会编译!

唯一要改变的是libc.so.6库上的新链接:(参见http://morganbye.net/blog/2011/10/matlab-ubuntu-1110 )

所以对于64位:删除旧链接

 sudo rm /lib64/libc.so.6 

(删除旧链接时要小心。对于Linux来说,启动是必不可少的。所以如果你在用新版本替换链接之前重新启动,那么现在是时候挖出一个活盘了。如果你是偏执狂,那么你可以首先将“cp”libc.so.6复制到libc.so.6.backup。)

替换为新链接

 sudo ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6 

对于32位:(我没有测试过这个,因为我只运行x64系统,但是根据评论,我认为应该可行)

删除旧链接(再次注意此命令)

 sudo rm /lib32/libc.so.6 

替换为新链接

 sudo ln -s /lib/i386-linux-gnu/libc-2.13.so /lib/libc.so.6 

当然,如果这是一个新的Ubuntu安装,那么你可能不需要rm(删除)命令。

1)编辑sources.list文件:

 sudo gedit /etc/apt/sources.list 

添加此行:

 deb http://mirror.pnl.gov/ubuntu/ hardy-updates main universe 

这里给出了完整的镜像站点列表

保存并关闭文件

2)注销登录

3)打开Synaptic。 如果在左侧的源列表中没有看到mirror.pnl.gov/ubuntu/ hardy-updates main universe ,请单击“ 重新加载”

4)从左栏中选择mirror.pnl.gov/ubuntu/ hardy-updates main universe – 这应该显示包列表。

5)从列表中选择g77,标记安装并应用。 g77现已安装并可以使用了。

你已经破坏了依赖关系。 你可以“修复”它们

 sudo apt-get -f install 

但在说是之前,请看,尝试卸载什么。

并且作为一个提示:降级ubuntu版本只是为了获得另一个版本的gcc并不是一个好主意。 您可以在一台机器上拥有多个版本的gcc! 我会再次使用您尝试降级失败之前的版本并保留之前的gcc版本。 然后得到gcc 4.3的tar-ball并自己编译,这并不困难。 之后你有两个gcc版本,然后你可以将matlab指向另一个版本(在matlab中的某处指定gcc路径)。

它不建议您使用gcc版本编译其他软件,而不是默认安装在ubuntu中的版本。

可能的解决方法:(修复MATLAB ,而不是GCC-4.3

来自: http : //xcorr.net/2010/05/07/getting-gcc-to-work-with-matlab-r2009b-on-linux-ubuntu-karmic-to-compile-mex-files/

(综上所述)

步骤1:

对于MATLAB,使用sudo run mex -setup并选择(最新的)GCC编译器。

第2步:

 sudo gedit ~/.matlab/R2009b/mexopts.sh 

CC =’gcc-4.6′替换CC =’gcc’的所有实例

(可选)将-ansi替换为-std = c99 ,以允许使用C ++样式//注释。

注意:如果稍后重新运行mex -setup ,则会覆盖mexopts.sh文件。

我知道这个问题已经有两年了,但是我不喜欢看到从未得到过公认答案的问题,所以我正在努力提供帮助。

这不使用包管理器,但是在http://gcc-uk.internet.bs/releases/,您几乎可以找到每个版本的GCC。 版本4.3.0(可能还有所有其他版本)包含HTML安装说明。 如果您不喜欢英国服务器,GCC网站上会有一系列镜像; 其中一些可能有像这样的旧版本。

我不同意Michal Kvasnicka,你应该总是使用指定版本的GCC。