c语言编程显示未定义的引用,c – 链接时奇怪的未定义引用
我在以下几行代码中重现了我在一个更大的项目中所经历的行为.我遗漏了#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 – 链接时奇怪的未定义引用相关推荐
- 显示单月的日历c语言编程,显示单月的日历的C程序
显示单月的日历的C程序 题目如下: 要求显示出单月的日历,用户说明这个月的天数和本月的起始日是星期几,即可输出该月的日历. 就是这么一道简单的程序,我憋了两天总算弄出来了,结果虽然达到了要求,但距离我 ...
- c语言编程显示单月日历,C语言日历显示日历显示br/编程反复显示2013年各月份日历 爱问知识人...
日历显示 编程反复显示2013年各月份日历.(程序可以设定2013年1月1号为星期二). #include void main() { int t,h,day,i,y; char c; while(1 ...
- 10位AD用C语言编程显示4V电压值,设计一款四位数字温度计
1.温度传感器AD590基本知识 AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1u ...
- c语言 编程显示图案*,*型图案的显示与控制(学习C语言后的编程尝试)(2)(完)...
题目要求如下: 打印如下图案 * *** ***** ******* ***** *** * TC中屏幕为25行,80列,将图形放于屏幕中间位置 .按键盘"w"键可以将图(数字,星 ...
- c语言编程显示单月日历,任意年月日历输出-题解(C语言代码)
本题目主要解决如下几个问题: **1.该月的1号是星期几: 2.该月份有几天: 3.2月份天数的特殊处理: 4.输出格式问题.** 我们来一次解决如上问题: ###### 问题1:该月的1号是星期几 ...
- c语言 编程显示图案*,C语言中怎么编程在计算机屏幕上显示如下图案?
满意答案 aggaskd2a 2013.07.14 采纳率:41% 等级:11 已帮助:5656人 #include int main() { int i, j; for(i = 0; i &l ...
- c语言编程 显示动物,C语言编程 猜动物
猜动物:假设你是一个动物,程序问问题试图猜出你是哪种动物.如果程序的猜测正确,就开始另一轮游戏.如果程序不能断定你是哪种动物,你就提供一些信息给程序以使下次再玩游戏时,程序会聪明一点儿. 举例:假设你 ...
- C语言编程闪屏,双缓冲解决VC++绘图时屏幕闪烁
通常来说程序根据需要调用Invalidate(FALSE)使窗口客户区无效引起重绘,然后在窗口OnPaint函数(基于文档视图的程序则是OnDraw)中进行稳定绘图就行了.但是,我们在OnPaint中 ...
- 有理数加法要简化c语言编程,两个有理数相加(要求输入时以分数形式,输出时也以分数形式)...
上大一,老师布置了一道题,内容就是:两个有理数相加(要求输入时以分数形式,输出时也以分数形式),这道题用了大概2个多小时吧(欢迎指导),废话不多说了,直接上程序: #include using nam ...
最新文章
- ES6新增的let与const
- 在redhat6.4下安装 Oracle® Database 11g Release 2
- JavaWeb:JSP
- 【GNN】谷歌、阿里、腾讯等在大规模图神经网络上必用的GNN加速算法
- 1067: [SCOI2007]降雨量
- Linux:分享50个实用的基础命令,欢迎收藏!
- PHP rewinddir()函数与示例
- linux修改key文件夹,linux 中如何根据xml文件的key来修改value呢?
- SonicWall 又爆已遭利用的 0day?!
- 统计功效(power)
- RS232RS485协议原理和应用
- 尘埃系列的服务器怎么样,棕色尘埃台服和谐了吗?棕色尘埃各服务器有何区别...
- 谷歌移动UI框架Flutter入门
- 文本数据挖掘(Text Mining)
- 爽一把手写Bundle Adjustment
- 软件测试好学吗 入门还是很好学的,但想要深造就还是要费功夫
- 不改一行代码,将微信小程序转成商业App?
- 经典的Times 33 哈希算法
- web前端 js实现频域水印制作
- oneinstack申请免费的R3 域名证书
热门文章
- python安装pylab库
- 定点数的运算 —— 逻辑移位、算术移位、循环移位
- python/gurobi计算二人零和博弈纳什均衡精确解(可求解大规划策略空间)
- 某985高校学者私自拷贝他人评审的基金申请书,并当自己的去申基金!国自然基金委通报!...
- ArcGIS 图层上点的编辑
- TcaplusDB君 · 行业新闻汇编(11月08号)
- 卸载 HI 英文输入法( InputHelp )
- it可以拥有的证书含金量和途径
- 基于平台的软件开发(一)
- 关于:File.separator ( 详解 )