ubuntu下安装g++

  1. 主要来自ubuntu中文社区http://www.ubuntu.org.cn/support/documentation/doc/VMware

  2. 首选,确认你已经安装了build-essential程序包: apt-get install build-essential

  3. 确认你已经安装了内核头文件包: uname -r
    apt-get install linux-headers-‘kernel
    version‘

  4. 如果你遇到gcc版本错误,你需要安装编译你内核的gcc版本: cat /proc/version 这会告诉你,你的内核是用什么版本的gcc编译的.
    $ cat /proc/version 
    Linux version 2.6.12-8-386 ([email protected]) (gcc
    version 3.4.5 20050809 (prerelease) (Debian 3.4.4-6ubuntu6)) #1 Tue Aug 30
    22:41:30 BST 2005
    ls /usr/bin/gcc*

    /usr/bin/gcc /usr/bin/gcc-4.0 /usr/bin/gccbug
    /usr/bin/gccbug-4.0

    可以看到,我的核心是用gcc-3.4编译的,但我只装了gcc-4.0.如果你的也不同于/usr/bin/gcc*,你需要安装核心所用的版本.
    apt-get install gcc-3.4 这是我需要的版本,你的可能不同.


  5. 人 们忘记的,并困扰我的是g++版本.一些人好像安装gcc之后就可以正常安装vmware-config.pl.但我的在编译vmmon模块时遇到
    "cannot exec ‘cc1plus‘"错误并停止了.你需要安装的是和gcc一样版本的gcc-c++,只是Debian/Ubuntu把它叫做g++.
    apt-get install g++-3.4

  6. 编辑添加: 我忘记你要设定CC为需要的gcc版本了: export
    CC=/usr/bin/gcc-3.4
    ./runme.pl

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

编译C++与Fortran

GCC 是 GNU 编译器集合(GNU Compiler Collection)的首字母缩写词。GNU 编译器集合包含
C,C++,Objective-C,Fortran,Java 和 Ada 的前端以及这些语言对应的库(libstdc++,libgcj,……)。

前面我们只涉及到 C 语言,那么如何用 gcc 编译其他语言呢?本节将简单介绍 C++ 和 Fortran 编译的例子。

首先我们尝试编译简单的 C++ 的经典程序 Hello world

#include <iostream>
int main(int argc,char
*argv[])
{
std::cout << "hello, world\n";
return 0;
}

将文件保存为‘hello.cpp’,用 gcc 编译,结果如下:

$ gcc -Wall hello.cpp -o hello
/tmp/cch6oUy9.o: In function
`__static_initialization_and_destruction_0(int,
int)‘:
hello.cpp:(.text+0x23): undefined reference to
`std::ios_base::Init::Init()‘
/tmp/cch6oUy9.o: In function
`__tcf_0‘:
hello.cpp:(.text+0x6c): undefined reference to
`std::ios_base::Init::~Init()‘
/tmp/cch6oUy9.o: In function
`main‘:
hello.cpp:(.text+0x8e): undefined reference to
`std::cout‘
hello.cpp:(.text+0x93): undefined reference to
`std::basic_ostream<char, std::char_traits<char> >&
std::operator<< <std::char_traits<char>
>(std::basic_ostream<char, std::char_traits<char> >&, char
const*)‘
/tmp/cch6oUy9.o:(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0‘
collect2: ld returned 1 exit status

出错了!!而且错误还很多,很难看懂,这可怎么办呢?在解释之前,我们先试试下面的命令:

$ gcc -Wall hello.cpp -o hello -lstdc++

噫,加上-lstdc++选项后,编译竟然通过了,而且没有任何警告。运行程序,结果如下:

$ ./hello 
hello, world

通过上节,我们可以知道,-lstdc++ 选项用来通知链接器链接静态库 libstdc++.a。而从字面上可以看出,libstdc++.a 是C++
的标准库,这样一来,上面的问题我们就不难理解了──编译 C++ 程序,需要链接 C++ 的函数库 libstdc++.a。

编译 C 的时候我们不需要指定 C 的函数库,为什么 C++ 要指定呢?这是由于早期 gcc 是指 GNU 的 C 语言编译器(GNU C
Compiler),随着 C++,Fortran 等语言的加入,gcc的含义才变化成了 GNU 编译器集合(GNU Compiler
Collection)。C作为 gcc 的原生语言,故编译时不需额外的选项。

不过幸运的是,GCC 包含专门为 C++ 、Fortran 等语言的编译器前端。于是,上面的例子,我们可以直接用如下命令编译:

$ g++ -Wall hello.cpp -o hello

GCC 的 C++ 前端是 g++,而 Fortran 的情况则有点复杂:在 gcc-4.0 版本之前,Fortran 前端是
g77,而gcc-4.0之后的版本对应的 Fortran 前端则改为 gfortran。下面我们先写一个简单的 Fortran 示例程序:

C Fortran 示例程序
PROGRAM HELLOWORLD
WRITE(*,10)
10 FORMAT(‘hello,
world‘)
END PROGRAM HELLOWORLD

将文件保存‘hello.f’,用 GCC 的 Fortran 前端编译运行该文件

$ gfortran -Wall hello.f -o hello
$ ./hello
hello, world

我们已经知道,直接用 gcc 来编译 C++ 时,需要链接 C++ 标准库,那么用 gcc 编译 Fortran时,命令该怎么写呢?

$ gcc -Wall hello.f -o helloworld -lgfortran -lgfortranbegin

注意:上面这条命令与 gfortran 前端是等价的(g77 与此稍有不同)。其中库文件
libgfortranbegin.a (通过命令行选项 -lgfortranbegin 被调用) 包含运行和终止一个 Fortran
程序所必须的开始和退出代码。库文件 libgfortran.a 包含 Fortran 底层的输入输出等所需要的运行函数。

对于 g77 来说,下面两条命令是等价的(注意到 g77 对应的 gcc 是 4.0 之前的版本):

$ g77 -Wall hello.f -o hello
$ gcc-3.4 -Wall hello.f -o hello -lfrtbegin
-lg2c

命令行中的两个库文件分别包含 Fortran 的开始和退出代码以及 Fortran 底层的运行函数。

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

ubuntu安装GCC 整个过程我自己装过,可以的,具体参考了几个网页,有的忘记了,其中一个是
http://wiki.ubuntu.org.cn/Qref/Gutsy

确保系统已联入互联网

打开终端,“应用程序 - 附件 -
终端”

修改并更新你的更新服务器列表,输入命令 sudo cp /etc/apt/sources.list
/etc/apt/sources.list_backup 

sudo gedit /etc/apt/sources.list
注意:下面在打开的窗口中,把你看到的内容全部删掉,访问我们推荐的源7.10页面。在那里里请选择一组对于你来说速度最快的更新服务器列表。粘贴到你所看到的窗口中。

对电信网通用户,推荐将欧洲官方源服务器粘贴到最后

Archive.ubuntu.com更新服务器
deb
http://archive.ubuntu.com/ubuntu/ gutsy main restricted universe
multiverse 
deb http://archive.ubuntu.com/ubuntu/ gutsy-security main
restricted universe multiverse 
deb http://archive.ubuntu.com/ubuntu/
gutsy-updates main restricted universe multiverse 
deb
http://archive.ubuntu.com/ubuntu/ gutsy-proposed main restricted universe
multiverse 
deb http://archive.ubuntu.com/ubuntu/ gutsy-backports main
restricted universe multiverse 
deb-src
http://archive.ubuntu.com/ubuntu/ gutsy main restricted universe
multiverse 
deb-src http://archive.ubuntu.com/ubuntu/ gutsy-security
main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/
gutsy-updates main restricted universe multiverse deb-src
http://archive.ubuntu.com/ubuntu/ gutsy-proposed main restricted universe
multiverse deb-src http://archive.ubuntu.com/ubuntu/ gutsy-backports main
restricted universe multiverse

推荐大家加入ubuntu-cn源(网通访问偏慢)
deb
http://archive.ubuntu.org.cn/ubuntu-cn/ gutsy main restricted universe
multiverse

4.刷新软件包列表
sudo apt-get update

装基本开发环境:
sudo
apt-get install build-essential gcc make

装编辑器:
sudo apt-get install
vim emacs

装基本开发库
sudo apt-get install libc6 libc6-dev

装manpage,
装了之后可以直接用 man printf 查阅printf的详细用法

sudo apt-get install
manpages-dev

我按照这个步骤,装成功了,并运行了一个小程序,helloworld
,可以的。

后面的安装都是在线的,所以一定要联网,大概总共有60MB左右吧,还没有全部升级软件,那样更大。

时间: 2024-10-13 01:44:51

ubuntu下安装g++的相关文章

在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)

GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL,会有很多非常恶心的预备工作要做,而且可能还要专门为平台的差异写一些代码.要跳过这些工作,可以用一个utility库,直接使用它提供的函数,就不用操心那些细节了.这样的库新一点的有GLEW,因为开源所以安装相对方便(大不了丢进去一起编译),但各种教程和书里常见的是闭源的GLUT.由于GLUT的作者已经

ubuntu下安装git,sublime,nodejs

用的是VMware10.0版本的虚拟机,很早之前下载的今天就直接用了,安装挺简单记得需要一个序列号.在这里:http://mirrors.163.com/ubuntu-releases/15.04/ubuntu-15.04-desktop-i386.iso 下载的ubuntu15.04ISO镜像(文件挺大还是用迅雷下载吧能快点),下载好之后就可以自定义创建新的虚拟机了基本就是按照VM安装向导提示安装,最后注意在虚拟机设置点击CD/DVD(SATA)用ISO映像文件启动不然会提示“系统不存在”.在

Ubuntu下安装FTP服务及使用(以VSFTPD为例)

(一)安装与配置 (1)       安装vsftpd $sudo apt-get install vsftpd 这里会提示无法创建/home/ftp目录,手动创建一个 $sudo mkdir /home/ftp 如果提示已创建目录就不用理它了 (2)       编辑配置文件/etc/vsftpd.conf $sudo gedit /etc/vsftpd.conf 也可以使用vi 主要配置: 将local_enable=YES前的#去掉,使其可用,表示允许本地用户登录: 将anonymous_

ubuntu下安装opencv 2.4.9 脚本,支持摄像头和cuda

1 arch=$(uname -m) 2 if [ "$arch" == "i686" -o "$arch" == "i386" -o "$arch" == "i486" -o "$arch" == "i586" ]; then 3 flag=1 4 else 5 flag=0 6 fi 7 echo "Installing OpenCV

ubuntu 下安装nodejs以及pm2

ubuntu 12.04服务器可以使用apt-get方式安装Node JS,但是,安装完后的版本为v0.6.12的版本,如果我们想要使用新一点的版本需要做如下配置: apt-get install python-software-properties apt-add-repository ppa:chris-lea/node.js apt-get update apt-get install nodejs 安装完成后可以检查一下版本,使用如下命令可以查看: [email protected]:#

在Ubuntu下安装、配置和测试cuda[复制]

在Ubuntu下安装CUDA要比在Windows下稍微复杂和费事一些,尤其对于平台和一些其他依赖软件包的安装上要求多些. Nvidia官方只提供了Ubuntu10.10下的CUDA的Toolkit,SDK,自己一开始是想在Ubuntu11.10上安装CUDA的,结果安装了编译时却出现很多错误并且提示gcc版本过高(Ubuntu11.10内核是2.6而默认安装编译的gcc是4.6的)后来重新又把gcc4.6卸载再装了gcc4.4.结果由于之前使用的是默认的Ubuntu开源的nvidia驱动,还是不

ubuntu下安装rpm 文件

  正想着如何把rpm package 安装到ubuntu上, 发现了这篇文章,转载一下 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo apt-get install alien #alien默认没有安装,所以首先要安装它 sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.deb sudo dpkg -i xxxx.deb #安装 注意,用alien转换的deb包并不能保证100%顺利安装

ubuntu下安装rabbitmq-c-master

UDP特点: 无连接 基于消息的数据传输服务 不可靠 一般情况下UDP更加高效. UDP注意点: UDP报文可能会丢失.重复 UDP报文可能会乱序 UDP缺乏流量控制 UDP协议数据报文截断 recvfrom返回0,不代表连接关闭,因为udp是无连接的. ICMP异步错误 UDP connect UDP外出接口的确定 套接口具有两个属性: 本地地址  getsockname() 远程地址  getpeername() 调用sento时进行绑定. echosrv.c #include <unist

Ubuntu下安装网络仿真器NS3 3.22

Ubuntu下安装网络仿真器NS3 3.22 1. NS3 下载 进入NS3官网,https://www.nsnam.org.下载NS3软件包ns-allinone-3.22.tar.bz2.然后,将软件包进行解压. 2. 依赖软件包安装 由于依赖软件包比较多,我们利用shell脚本编程安装.将所有安装命令写入脚本文件,并在后面附加自动确认参数(-y),然后编译和执行脚本文件. 如下: 1).在vi中编辑如下文件 #!/bin/sh sudo apt-get install gcc g++ py