C++ rtmp livestream 流媒体

海阔天空 张翼飞翔

我的学习笔记。--我喜欢这里,因为这里安静,无广告骚扰。
随笔 - 82, 文章 - 2, 评论 - 126, 引用 - 0
数据加载中……

undefined reference编译问题

编译的时候出现这种报错几率很高,我总结了下面几种常见的错误导致undefined reference

1.第三方库没有导入,例如:
undefined reference to `pthread_create'
undefined reference to `pthread_detach'
undefined reference to `pthread_join'
在link的时候加上 -lpthread 解决
undefined reference to `timer_settime'
undefined reference to `timer_create'
undefined reference to `timer_delete'
在link的时候加上 -lrt 解决

2.c调用c++或c++调用c方法的时候,在c方法加
#ifdef __cplusplus
extern "C" {
#endif
////code here////
#ifdef __cplusplus
}
#endif
extern "C" 的意思
c程序调用c++函数,他的功能是让c++编译器以c的方式编译这些函数.让c程序能够调用
c++程序调用c函数,他的功能是让c++编译器知道这些函数是以c方式编译的,让c++程序能够调用.

3. link的时候 参数顺序 .a文件 放在.o文件的前面,例如:
g++ -o demo rtmp.a demo.o
也会出现undefined reference,应该改成g++ -o demo  demo.o rtmp.a 

4.声明的头文件和定义参数不同,
例如声明的是unsign int fun(),定义用的时候用的是int fun()编译器也会报undefined reference

5.项目中新增了源码c文件,但在对应的MakeFile文件中没有做相应的增加或修改。

posted on 2011-09-13 11:05 ZhangEF 阅读(7636) 评论(0)  编辑  收藏 所属分类: GNU编译


只有注册用户登录后才能发表评论。
该文被作者在 2012-04-23 00:04 编辑过
网站导航: