Chinaunix

标题: 只有第三方的头文件,链接时怎么解决: undefined reference to xxx [打印本页]

作者: yakczh_cu    时间: 2016-10-23 10:59
标题: 只有第三方的头文件,链接时怎么解决: undefined reference to xxx
比如  test.c


  1. #include <ogg/ogg.h>     这是第三方的定义文件  但是没有实现代码
  2. #include "wav_io.h"    这是项目内部的定义文件,有实现

  3. void main(){

  4.   
  5.   ...

  6. ogg_stream_flush();

  7. ...

  8. }
复制代码



编译能通过 ,但是链接时提示   undefined reference to `ogg_stream_flush'


作者: hitcser01    时间: 2016-10-23 12:55
本帖最后由 hitcser01 于 2016-10-23 12:58 编辑

楼主你没有第三方对应的.a或者.so?那就没辙。

作者: MMMIX    时间: 2016-10-23 13:05
回复 1# yakczh_cu

libogg 是开源的呀,下载代码自己编译一个嘛
作者: yakczh_cu    时间: 2016-10-23 13:28
回复 3# MMMIX

下载下来是 多个c文件
里面的makefile是
Makefile.am
Makefile.in

如果不用makefile  用命令行参数能否把 一个目录下所有c文件静态编译成一个库文件?

作者: MMMIX    时间: 2016-10-23 15:25
回复 4# yakczh_cu

如果不用makefile  用命令行参数能否把 一个目录下所有c文件静态编译成一个库文件?


可以肯定是可以的。不过既然你问了,那我觉得你还是走正常的 ./configure, make, make install 的路子吧,不要给自己找麻烦。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2