在linux下如何编译C++程序

一、GCC(GNU Compiler Collection)是linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活。它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada

         g++是GCC中的一个工具,专门来编译C++语言的。

         GCC的参数有:( 也是分步实现)

                                  -E  让GCC在预处理结束后停止编译  g++ -E hello.cpp  -o  hello.i

                                   -c  将hello.i编译成目标代码 g++  -c  hello.i  -o  hello.o

                                   将目标文件连接成可执行文件   g++ hell.o   -o   hello

           可以一步实现   g++  hello.cpp  -o  hello

 

二、假如有两个以上源文件应该一下编译。

         一步就实现      g++   foo1.cpp   foo2.cpp   -o   foo

        也可以分步实现   g++   -c   foo1.cpp  -o   foo1.o

                                       g++   -c    foo2.cpp  -o   foo2.o

                                       g++   foo1.o  foo2.o    -o    foo

三、GCC一些常用选项

         1、产生警告信息的选项大多数以-W开头  其中有-Wall

              g++  -Wall  hello.cpp   -o   hello

         2、将所有的警告当成错误的选项-Werror

               g++ -Werror  hello.cpp  -o  hello

          3、寻找头文件选项 -I    (linux默认路径:头文件在/usr/include/下),不在这个路径下就要用-I指定。

              gcc  foo.cpp  -I/home/include   -o  foo

          4、 库依赖选项     -L      (linux默认路径:库文件在/usr/lib/下),不在这个路径下就要用-L指定。

                g++  foo.cpp  -L/home/lib  -lfoo  -o   foo

               库就是将源文件编译之后生成的目标文件的集合。

               库命名以lib开头。

                库有静态库(通常以.a结尾)和动态库(通常以.so结尾)

                默认情况下,g++以动态库形式连接。如果要静态库连接则要用-static指定(g++ foo.cpp  -L/home/lib  -static  -lfoo  -o  foo)

          5、优化选项  -On  (n取0到3之间)

 

四、介绍一些GNU 二进制链工具

          1、ar命令(也称为工具)   可以用来编译成静态库

              ar  [-] {操作选项} {任选项} [成员名] [count] archive files....

              ar r v  libtest.a  hello.o  hello1.o  生成一个库名为test,该库中存放了hello.o和hello1.o这两个模块。

               操作项:d (删除)、  m(移动)、p(标准输出)、q(快速追加)、r(在库中插入模块)、t(显示库的模块清单)、x(从库中提取一个成员)。

              任选项:a(成员后面添加一个新文件)、b(成员前面添加一个新文件)、c(创建一个库)、f(截短指定名字)、v(显示执行操作选项的附加信息)。

          2、编译成动态库

               分步完成: gcc  -fPIC  -c  func.cpp  -o  func.o

                                     gcc -shared  -o  libfunc.so  func.o

               一步就完成:gcc -fPIC  -shared -o libfunc.so  func.cpp

 

 

 

 

  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux编译C++程序,需要先安装C++编译器,比如gcc或者clang。然后使用命令行工具进入程序所在的目录,使用以下命令进行编译: ``` g++ -o 程序名 源文件名.cpp ``` 其中,-o表示输出文件名,程序名和源文件名可以自定义。如果程序中使用了第三方库,需要在编译时加上库文件的路径和库名,例如: ``` g++ -o 程序名 源文件名.cpp -I /usr/local/include -L /usr/local/lib -l 库名 ``` 其中,-I表示头文件路径,-L表示库文件路径,-l表示库名。编译成功后,可以使用以下命令运行程序: ``` ./程序名 ``` ### 回答2: 在Linux编译C程序,需要先安装相应的开发工具,如gcc、make等。gcc是GNU Compiler Collection的简称,是一款流行的开源编译器,能够编译许多不同语言的程序,包括C语言。make是一款常用的自动化编译工具,能够根据Makefile文件中的规则自动编译、连接程序编译C程序的过程包括预处理、编译、汇编、链接四步。编译器将程序源代码预处理成中间代码,然后将中间代码编译成汇编代码,然后将汇编代码汇编成可执行文件,最后链接所有所需的库文件和程序对象。 编译C程序的基本命令如下: 1. 编译单个源文件 gcc -c filename.c -o filename.o -c选项将源代码编译成中间代码,-o选项指定输出文件名为filename.o,即编译后生成的目标文件。 2. 编译多个源文件,并链接成可执行文件 gcc -o program filename1.o filename2.o -o选项指定输出文件名为program,gcc将文件filename1.o和filename2.o编译为可执行文件program,如果程序需要调用外部库,则需要在命令行中添加所需的库文件名。 3. 使用make命令编译程序 在源代码目录中编写Makefile文件,指定程序编译规则和依赖关系,然后使用make命令自动编译程序。 总之,编译C程序需要仔细检查程序源代码,通过调试和测试确保程序能够正确运行,使用合适的命令编译程序,并检查程序运行结果,不断迭代并完善程序。 ### 回答3: 在Linux操作系统下,C语言程序编译可以使用GCC(GNU Compiler Collection)。GCC可以在Linux系统中通过命令行进行安装,安装完成后即可使用。 1. 首先,需要在Linux终端中打开一个文本编辑器,如Vim或Nano,并编写C语言程序编写完成后,将文件保存为以“.c”为扩展名的文件,如“test.c”。 2. 接下来,需要打开终端,并进入保存有C语言程序的文件所在的目录。这可以通过使用“cd”命令实现。例如,如果文件保存在桌面上的“code”目录下,则可以使用以下命令进入该目录: ``` cd ~/Desktop/code ``` 3. 然后,执行编译命令。如下是一个简单的编译命令: ``` gcc -o test test.c ``` 在其中,“gcc”表示所使用的编译器,“-o”表示输出文件的名字,后面紧跟着输出文件的名称,“test.c”则是需要编译的C语言程序文件的名称。执行该命令后,会在当前目录下生成一个名为“test”的可执行文件。 4. 最后,执行可执行文件。在终端中输入以下命令: ``` ./test ``` 即可运行可执行文件。程序将开始执行,通过终端打印出程序中的输出信息。要注意的是,输出信息的内容应该是与所编写程序相一致的。 总的来说,编译C语言程序Linux下是非常简单易行的。只需要在终端中使用GCC编译器即可完成编译,最终会生成一个可执行文件,供用户使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值