我在以下几行代码中重现了我在一个更大的项目中所经历的行为.我遗漏了#ifndef守卫和#include指令,试图提高可读性.调用make时会产生链接器错误. makefile包含在问题的末尾.

C类继承自B的继承自A的O.O是完全不同的类.

链接器抱怨:

g++ -o main main.cpp -L. -lABC -lO

./libO.a(O.o): In function `O::foo(A)':

O.cpp:(.text+0x1f): undefined reference to `C::C(A const&)'

这是源代码.我试图让它尽可能小和可读.知道问题是什么?

/***** A.h *****/

class A

{

public:

A();

A(const A& a);

};

/***** A.cpp *****/

A::A() {}

A::A(const A& a) {}

/****** BC.h *******/

class B : public A

{

public:

B(const A& a);

};

class C : public B

{

public:

C(const A& a);

};

/******* BC.cpp ********/

B::B(const A& a) : A(a) {}

C::C(const A& a) : B(a) {}

/***** O.h *****/

class O

{

public:

void foo(A a);

};

/***** O.cpp *****/

void O::foo(A a)

{

C c(a);

}

这是主要的:

/******* main.cpp *******/

int main()

{

A a;

O o;

o.foo(a);

return 0;

}

这是makefile:

%.o: %.cpp %.h

g++ -c $<

.PHONY: all

all: mklibs main

main: main.cpp

g++ -o $@ main.cpp -L. -lABC -lO

mklibs: libABC.a libO.a

libABC.a: A.o BC.o

ar -r $@ $^

libO.a: O.o

ar -r $@ $^

c语言编程显示未定义的引用,c – 链接时奇怪的未定义引用相关推荐

  1. 显示单月的日历c语言编程,显示单月的日历的C程序

    显示单月的日历的C程序 题目如下: 要求显示出单月的日历,用户说明这个月的天数和本月的起始日是星期几,即可输出该月的日历. 就是这么一道简单的程序,我憋了两天总算弄出来了,结果虽然达到了要求,但距离我 ...

  2. c语言编程显示单月日历,C语言日历显示日历显示br/编程反复显示2013年各月份日历 爱问知识人...

    日历显示 编程反复显示2013年各月份日历.(程序可以设定2013年1月1号为星期二). #include void main() { int t,h,day,i,y; char c; while(1 ...

  3. 10位AD用C语言编程显示4V电压值,设计一款四位数字温度计

    1.温度传感器AD590基本知识 AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1u ...

  4. c语言 编程显示图案*,*型图案的显示与控制(学习C语言后的编程尝试)(2)(完)...

    题目要求如下: 打印如下图案 * *** ***** ******* ***** *** * TC中屏幕为25行,80列,将图形放于屏幕中间位置 .按键盘"w"键可以将图(数字,星 ...

  5. c语言编程显示单月日历,任意年月日历输出-题解(C语言代码)

    本题目主要解决如下几个问题: **1.该月的1号是星期几: 2.该月份有几天: 3.2月份天数的特殊处理: 4.输出格式问题.** 我们来一次解决如上问题: ###### 问题1:该月的1号是星期几 ...

  6. c语言 编程显示图案*,C语言中怎么编程在计算机屏幕上显示如下图案?

    满意答案 aggaskd2a 2013.07.14 采纳率:41%    等级:11 已帮助:5656人 #include int main() { int i, j; for(i = 0; i &l ...

  7. c语言编程 显示动物,C语言编程 猜动物

    猜动物:假设你是一个动物,程序问问题试图猜出你是哪种动物.如果程序的猜测正确,就开始另一轮游戏.如果程序不能断定你是哪种动物,你就提供一些信息给程序以使下次再玩游戏时,程序会聪明一点儿. 举例:假设你 ...

  8. C语言编程闪屏,双缓冲解决VC++绘图时屏幕闪烁

    通常来说程序根据需要调用Invalidate(FALSE)使窗口客户区无效引起重绘,然后在窗口OnPaint函数(基于文档视图的程序则是OnDraw)中进行稳定绘图就行了.但是,我们在OnPaint中 ...

  9. 有理数加法要简化c语言编程,两个有理数相加(要求输入时以分数形式,输出时也以分数形式)...

    上大一,老师布置了一道题,内容就是:两个有理数相加(要求输入时以分数形式,输出时也以分数形式),这道题用了大概2个多小时吧(欢迎指导),废话不多说了,直接上程序: #include using nam ...

最新文章

  1. ES6新增的let与const
  2. 在redhat6.4下安装 Oracle® Database 11g Release 2
  3. JavaWeb:JSP
  4. 【GNN】谷歌、阿里、腾讯等在大规模图神经网络上必用的GNN加速算法
  5. 1067: [SCOI2007]降雨量
  6. Linux:分享50个实用的基础命令,欢迎收藏!
  7. PHP rewinddir()函数与示例
  8. linux修改key文件夹,linux 中如何根据xml文件的key来修改value呢?
  9. SonicWall 又爆已遭利用的 0day?!
  10. 统计功效(power)
  11. RS232RS485协议原理和应用
  12. 尘埃系列的服务器怎么样,棕色尘埃台服和谐了吗?棕色尘埃各服务器有何区别...
  13. 谷歌移动UI框架Flutter入门
  14. 文本数据挖掘(Text Mining)
  15. 爽一把手写Bundle Adjustment
  16. 软件测试好学吗 入门还是很好学的,但想要深造就还是要费功夫
  17. 不改一行代码,将微信小程序转成商业App?
  18. 经典的Times 33 哈希算法
  19. web前端 js实现频域水印制作
  20. oneinstack申请免费的R3 域名证书

热门文章

  1. python安装pylab库
  2. 定点数的运算 —— 逻辑移位、算术移位、循环移位
  3. python/gurobi计算二人零和博弈纳什均衡精确解(可求解大规划策略空间)
  4. 某985高校学者私自拷贝他人评审的基金申请书,并当自己的去申基金!国自然基金委通报!...
  5. ArcGIS 图层上点的编辑
  6. TcaplusDB君 · 行业新闻汇编(11月08号)
  7. 卸载 HI 英文输入法( InputHelp )
  8. it可以拥有的证书含金量和途径
  9. 基于平台的软件开发(一)
  10. 关于:File.separator ( 详解 )