Ⅰ 如何在 Mac 上安装 GCC
1、首先我的工作从安装homebrew开始。这个软件能够补齐很多mac上的开发者需要的功能。地址是Homebrew — MacPorts 难以使用?试试 Homebrew!2、然后就是要到下载软件必须使用的command line tool。具体它有什么用我还不知道,反正homebrew提醒需要安装它。此外Xcode –> Preferences –> Downloads 的Components下也可以安装这个东西。3、然后是在终端中输入以下代码brew tap homebrew/versionsbrew install gcc49第二行可以使用 [flags] 添加一些需要支持的语言的树,例如 –enable-cxx –enable-fortran
Ⅱ mac下的gcc如何使用。。
gcc常用命令行gcc/g++在执行编译工作的时候,总共需要以下几步:1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]3.由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]/**********GCC能够处理的后缀有:**********/a. *.c *.C (C语言)b. *.cxx *.cc (C++语言)c. *.m (面向对象的C)d. *.i (预处理后的C语言源文件)e. *.ii (预处理后的C++语言源文件)f. *.s *.S (汇编语言)h. *.h (头文件)/**********目标文件可以是:**********/a. *.o 编译连接后的目标文件b. *.a 库文件-o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.-c 只编译不链接-IDIRNAME 将DIRNAME加入到头文件的搜索目录列表中-LDIRNAME 将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库-lFOO 链接名为libFOO的函数库-O 优化编译过的代码-ON 指定代码优化的级别为N,o<=N<=3-v 显示在编译过程的每一步中用到的命令-x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp, 如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用, 除非到了下一个参数的使用。例 gcc -x c hello.pig-x none filename 关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型 例:gcc -x c hello.pig -x none hello2.c-c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例:gcc -c hello.c 他将生成.o的obj文件-o 制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它! 例子用法 gcc -o hello.exe hello.c (哦,windows用习惯了) gcc -o hello.asm -S hello.c-Idir 在你是用#include”file”的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录, 他回先在你所制定的目录查找,然后再按常规的顺序去找.对#include,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找-I- 就是取消前一个参数的功能,所以一般在-Idir之后使用-idirafter dir 在-I的目录里面查找失败,讲到这个目录里面查找.-iprefix prefix-iwithprefix dir 一般一起使用,当-I的目录查找失败,会到prefix+dir下查找-nostdinc 使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置-nostdin C++ 规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库使用-C 在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的-M 生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c来测试一下。-MM 和上面的那个一样,但是它将忽略由#include造成的依赖关系。-MD 和-M相同,但是输出将导入到.d的文件里面-MMD 和-MM相同,但是输出将导入到.d的文件里面-Wa,option 此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然后传递给会汇编程序-Wl.option 此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然后传递给会连接程序.-llibrary 制定编译的时候使用的库 例子用法 gcc -lcurses hello.c 使用curses库编译程序-Ldir 制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。这个dir就是目录的名称。-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高-g 只是编译器,在编译的时候,产生调试信息。-gstabs 此选项以stabs格式声称调试信息,但是不包括gdb调试信息.-gstabs+ 此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.-ggdb 此选项将尽可能的生成gdb的可以使用的调试信息.-static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行.-share 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统有动态库.-traditional 试图让编译器支持传统的C语言特性
Ⅲ gcc升级求助
1.下载GCC源码:wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.gz2.解压:tar -zxvf gcc-5.2.0.tar.gz3.下载编译所需依赖项:cd gcc-5.2.0 //进入解包后的gcc文件夹./contrib/download_prerequisites //下载依赖项cd .. //返回上层目录4.建立编译输出目录:mkdir gcc-build-5.2.05.进入输出目录,执行以下命令,并生成makefile文件:cd gcc-build-5.2.0../gcc-5.2.0/configure –enable-checking=release –enable-languages=c,c++ –disable-multilib6.编译:make -j4接下来就是等待了,整个过程大约40分钟左右。PS:最好不要在编译过程中再去做别的什么事,整个过程CPU都是满载的,要是莫名终止了,后面麻烦事也不少。切记编译时当前目录剩余空间要最少4G以上,否则会编译失败7.安装:编译结束以后,我们就可以执行安装了:make install8.检查版本:gcc –version或gcc -v7.切换GCC到新版确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后locate gcc-4.8|tail找一下ls /usr/local/bin | grep gcc添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了update-alternatives –install /usr/bin/gcc x86_64-unknown-linux-gnu-gcc-5.2.0 /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.2.0 40之后,你需要把usr/bin/目录下的gcc文件删除掉或者避免意外发生,可以把它命名为gcc.bak。这里需要说明的,实际上你在用gcc -v查看当前版本时,就一直使用的usr/bin/gcc。而ln -s /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.2.0 /usr/bin/gcc的目的就是为了生成gcc版本5.2的。此步骤完整操作如下:mv /usr/bin/gcc /usr/bin/gcc.bakln -s /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.2.0 /usr/bin/gcc8.确认当前版本已经切换为新版gcc -v我这里用ssh远程的,发现版本没变,断开重练下,重新生成会话后发现变成了5.2了!
Ⅳ gcc升级后静态库要升级吗
gcc升级后静态库需要升级源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
Ⅳ mac上怎么切换 gcc 的版本
1、首先以root用户登入 2、复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里 3、解压命令tar xvzf arm-linux-gcc-4.3.2 -C / 注意以上命令必须要有-C而且是大写,后边有个空格也要注意。 4、配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上下面代码。 export PATH=/usr/local/arm/4.3.2/bin:$PATH 保存关闭后,注销当前用户,用root账号重新登录系统(使刚刚添加的环境变量生效)。 此时可以在控制台输入: arm-linux-gcc -v 如果安装成功将会输出 arm-linux-gcc的版本号。 若想让它在非超级用户下使用那。首先,以非超级用户登入。 1、 输入命令:vi ~/.bashrc编辑.bashrc文件,在文件末尾加入如上面的内容 export PATH=/usr/local/arm/4.3.2/bin:$PATH 2、输入命令:gedit /etc/profile 在文件的末尾加上:PATH=/usr/local/arm/4.3.2/bin:$PATH 保存对profile的修改后,执行source /etc/profile就OK了,好了通样先注销当前用户再登录后进入控制台执行arm-linux-gcc -v 看看能否执行成功就可以了。
Ⅵ mac os 安装gcc
下载完成后,通过terminal进入下载目录,即gcc-4.8-bin.tar.gz所在的目录。输入命令:gunzip gcc-4.8-bin.tar.gz解压gcc-4.8-bin.tar.gz压缩包,注意只需要解压一次,在同一目录下得到gcc-4.8-bin.tar文件。3.继续在terminal中输入命令:sudo tar -xvf gcc-4.8-bin.tar输入密码后,自动在当前目录下生成了usr目录。cd /user/local/bin就可以看到所有的gcc相关的命令了。当然你也可以将整个目录移动到你需要的目录。4.添加gcc路径。关掉当前terminal,重新新建一个terminal。输入如下命令:touch ——/.bash_profile新建一个bash_profile文件,使用vi或者其他编辑器写入如下代码:export PATH=“/Users/lizhaotailang/Gcc/usr/local/bin:$PATH”,当然这是我的路径,具体的路径根据你的实际情况而定。写入完成后关闭文件。为了使文件生效,还需要在terminal输入source ——/。bash_profile。5.查看是否生效。在terminal中输入:echo $PATH,如果能够在输出中看到刚刚添加的路径就说明添加成功了。或者直接输入gcc命令,如果能够看到gcc的clang错误而不是找不到文件的话,就说明配置成功了。6.然后就可以愉快的使用gcc了。
Ⅶ R 包安装的时候,怎么指定gcc的参数
Mac中的开发工具链都是围绕xcode的,但是对于只想使用gcc,g++编译c/c++代码的情况,装一个xcode实在没有必要。更新:4.3版本的xcode已经将图形开发界面和命令行工具分开了发布了。还有即使装了xcode,默认带的gcc编译器都是lvmm做前端的,并非纯正的gnugcc。如果你想用纯正的gcc,最好的法就是自己手动编译一个。主要有以下方法:1.通过port安装这种方法比较简单,前提是mac上已经安装port了,具体命令:安装最新的gcc48:sudoportinstallgcc48默认的安装目录是:/opt/local/bin/2.通过homebrew安装这种方法比较简单,前提是mac上已经安装homebrew了,具体命令:brewtaphomebrew/versionsbrewinstall[flags]gcc49其中[flags]一些需要支持的语言的桉树,例如–enable-cxx–enable-fortran3.Github参考mentforcleanup…#cd../../..#rm-rtemp-gcc完成后,将在/usr/gcc-4.8.0安装gcc,然后可以创建gcc的软链接或者将bin路径加入到$PAHT变量中
Ⅷ 如何通过ppa安装/升级gcc和g 版本到4.8.1
1.更新Ubuntu的gcc和g++版本,依次进行如下操作:sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-4.7sudo apt-get install g++-4.72.本人安装过程中提示有存在依赖关系的文件未安装,gcc-4.6-base,则先安装该软件:sudo apt-get install gcc-4.6-base3.升级完成使用gcc –version(1)若显示有多个软件包包含gcc,让选择一个安装。可是进行gcc重新又显示已经安装。进入/usr/bin/目录后发现gcc-4.7和g++-4.7都存在,但是未发现他们的链接gcc和g++(其实我们平常使用的gcc和g++都是指向具体版本例如gcc-4.7和g++-4.7的符号链接哦),因此重建符号链接即可cd /usr/binsudo ln -s gcc-4.7 gccsudo ln -s g++-4.7 g++(2)若显示版本依然是4.4.3(或者你的旧版本号),并没有把4.7版设置为默认的gcc的链接文件,进入/usr/bin/把gcc这个文件删除,建立链接到gcc-4.7(g++类似):cd /usr/binsudo rm gccsudo ln -s gcc-4.7 g++sudo rm g++sudo ln -s g++-4.7 g++4.现在编译并执行例程,ok!编译通过了!
Ⅸ 如何在ubuntu中将gcc和g++升级到4.8
#加入此源为必须,否则容易查找不到要升级的版本sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get install gcc-4.8sudo apt-get install g++-4.8sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.8 20sudo update-alternatives –config gccsudo update-alternatives –config g++gcc –versiong++ –version显示为升级之后的版本,接下来就可以放心使用-std=c++11命令了。