zoukankan      html  css  js  c++  java
  • 编译多个文件

    假设我们写了一个foo.h的头文件,如下:

    #ifndef foo_h
    #define foo_h

    namespace m1 {
        void foo();
    }

    #endif

    例外,我们肯定还会写它的相关库文件来实现函数的功能,我们就写一个foo.c吧,如下:

    #include <iostream>
    #include "foo.h"//这里一定要打双引号,因为它不是标准头文件。

    void m1::foo()
    {
        std::cout<<"hello,world ";
    }

    最后,我们在写一个main.c文件来调用它:

    #include <iostream>
    #include "foo.h"

    void foo ()//这里我们在主函数也写了一个同名字的foo函数,我们编译的时候会不会因为名字相同报错呢,我们在主函数调用试试。
    {
        std::cout<<"HELLO, WORLD! ";
    }
    int main ()
    {
        m1::foo();//当然不会啦,我们在foo.h头文件编写的foo函数是放在名字空间m1中,所以就和我们自己的foo区分开来了,不过我们在调用时一定要加上它的名字空间。
        foo();

        return 0;
    }

    最后我们编译,首先应该:

    gcc -c foo.c

    gcc -c main.c

    这样生成对应的目标文件,最后一步就是:

    gcc main.o foo.o -o test

    生成可执行文件test,然后运行结果如下:

    hello, world

    HELLO, WORLD!

    由于浏览器的问题,我的截图传不上来,就是手打了运行结果。

  • 相关阅读:
    算法
    日常
    算法
    算法
    算法
    算法
    NaviCat连接mysql出现加密方式错误的解决方案:
    Sql sugar的使用
    报表体联查详情页面
    第一次用临时表的感受:
  • 原文地址:https://www.cnblogs.com/ranyang/p/13837771.html
Copyright © 2011-2022 走看看