美文网首页
linux g++编译c++

linux g++编译c++

作者: 脏脏包盛 | 来源:发表于2018-12-02 15:37 被阅读0次

单个源文件生成可执行程序

编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件。编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行:

g++ helloworld.cpp
./a.out

通过-o选项指定可执行程序文件名

g++ helloworld.cpp -o helloworld
./helloworld.

程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。通过遵循源码的命名规范并指定对应库的名字,用 gcc 来编译链接 C++ 程序是可行的,如下例所示:

gcc helloworld,cpp -lstdc++ -o helloworld

选项 -l (ell) 通过添加前缀 lib 和后缀 .a 将跟随它的名字变换为库的名字 libstdc++.a。而后它在标准库路径中查找该库。gcc 的编译过程和输出文件与 g++ 是完全相同的。

在大多数系统中,GCC 安装时会安装一名为 c++ 的程序。如果被安装,它和 g++ 是等同,如下例所示,用法也一致:

c++ helloworld.cpp -o helloworld

多个源文件生成可执行程序

/* speak.h */
#include <iostream>
class Speak
{
    public:
        void sayHello(const char *);
};
/* speak.cpp */
#include "speak.h"
void Speak::sayHello(const char *str)
{
    std::cout << "Hello " << str << "\n";
}
/* hellospeak.cpp */
#include "speak.h"
int main(int argc,char *argv[])
{
    Speak speak;
    speak.sayHello("world");
    return(0);
}
g++ hellospeak.cpp speak.cpp -o hellospeak

PS:这里说一下为什么在命令中没有提到“speak.h“该文件(原因是:在“speak.cpp“中包含有”#include”speak.h”“这句代码,它的意思是搜索系统头文件目录之前将先在当前目录中搜索文件“speak.h“。而”speak.h“正在该目录中,不用再在命令中指定了)。

相关文章

  • GCC/G++编译过程

    1. gcc/g++简介 gcc / g++分别是GNU的c & c++编译器,常用于在Linux下编译C/C++...

  • 命令行编译C++/C文件

    编译C文件用GCC 编译C++文件(包括.C/C++文件)用G++ 编译C++文件常用方法: 单个文件: g++ ...

  • error: 'cout' was not declared i

    Linux下C++编译出错原因解析 程序: 编译出错:$ g++ s.cpp -o s.outs.cpp: In ...

  • c++笔记

    第一个c++程序 系统环境: linux 编译器: g++ #include int main() { std...

  • 代码覆盖率工具

    转载:对于Linux下的C/C++代码,可以在gcc/g++工具编译代码时加上“–coverage”选项来生成可用...

  • linux g++编译c++

    单个源文件生成可执行程序 编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件。编译器...

  • [C++之旅] 0 Mac下编译运行C/C++

    [C++之旅] 0 Mac下编译运行C/C++ 编译c语言时采用gcc指令 编译c++语言时采用g++指令 以下以...

  • GCC CC Clang Make

    CC是UNIX上的C语言编译器,收费GCC是linux上的C语言编译器,免费,G++是C++的;为避免UNIX上的...

  • make初步

    简介:在linux系统下常常会用到g++或者gcc编译器编译c/c++代码,当代码文件较多时,采用命令行的方式进行...

  • 每日总结-第二十二天-gcc

    编译流程 gcc、g++分别是gnu的c、c++编译器,gcc/g++在执行编译工作的时候,总共需要4步: 预处理...

网友评论

      本文标题:linux g++编译c++

      本文链接:https://www.haomeiwen.com/subject/ozvjcqtx.html