<dl id="opymh"></dl>

<div id="opymh"></div>
      <div id="opymh"><tr id="opymh"></tr></div>

        <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

        <em id="opymh"></em>

        <em id="opymh"><ol id="opymh"></ol></em>

              频道栏目
              首页 > 程序开发 > 软件开发 > C++ > 正文
              ubuntu系统下c++编译cpp包含自定义类的多级调用的实例教程
              2018-07-30 11:33:36         来源全栈工程师开发手册原创  
              收藏   我要投稿

              第一次用g++编译cpp文件的时候报了undefined reference的错误自定义类中的函数全部都无法找到查找资料后发现调用的类是需要链接的本文以一个小例?#29992;?#36848;编译的过程其中class2类调用了class1类的成员函数依赖于class1类而test文件调用了class2类的成员函数依赖于class1类

              //class1.h
              #ifndef _CLASS1_H
              #define _CLASS1_H
              class class1
              {
              public:
               int f(int i);
              };
              #endif
              //class1.cpp
              #include
              #include "class1.h"
              using namespace std;
              int class1::f(int i)
              {
               if (i==0 || i==1)
              return 1;
               else
              return f(i-1)+f(i-1);
              }
              //class2.h
              #ifndef _CLASS2_H
              #define _CLASS2_H
              #include "class1.h"
              class class2
              {
              public:
               int double_f(int i);
              };
              #endif
              //class2.cpp
              #include
              #include "class2.h"
              using namespace std;
              int class2::double_f(int i)
              {
               class1 c;
               return 2*c.f(i);
              }
              //test.cpp
              #include
              #include "class2.h"
              using namespace std;
              int main()
              {
               class2 c2;
               cout << c2.double_f(4) <

              先把类class1和类class2以及test文件编译成.o格式的文件

              g++ -c class1.cpp
              g++ -c class2.cpp
              g++ -c test.cpp

              由于class1和class2是被依赖的需要打包成静态库文件.a格式用于链接

              ar -rc class1.a class1.o
              ar -rc class2.a class2.o

              最后一步就是将test.o链接成可执行文件

              g++ -o test test.o class2.a class1.a

              执行后得到可执行文件test使用./test指令就可以执?#23567;?#36825;里注意链接时静态链接库的顺序必要保证前面的依赖后面的的顺序如这里test依赖class2class2依赖class1则链接时test需要写在calss2前class2需要写在class1,前否则就会有undefined reference的错误

              点击复制链接 与好友分享!回本站首页
              上一篇C++之内联函数inline的使用解析
              下一篇用C语言C++编写一个迷宫游戏代码实例
              相关文章
              图文推荐
              点击排行

              关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

              版权所有: 红黑联盟--致力于做实用的IT技术学习网站

              ٷͧü
              <dl id="opymh"></dl>

              <div id="opymh"></div>
                  <div id="opymh"><tr id="opymh"></tr></div>

                    <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                    <em id="opymh"></em>

                    <em id="opymh"><ol id="opymh"></ol></em>

                          <dl id="opymh"></dl>

                          <div id="opymh"></div>
                              <div id="opymh"><tr id="opymh"></tr></div>

                                <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                                <em id="opymh"></em>

                                <em id="opymh"><ol id="opymh"></ol></em>