各位大侠们,我想利用已编译好的H。264编码库里面的函数,不知道怎么包含头文件啊,在linux下,谢谢大家了
展开全部
别人提供的库函数一般会提供库和头文件,如果没有但你知道函数原型的话自己写个头文件,声明一下函数原型,在包含在你的代码里。
关键是编译的时的问题,如果是一个libh264.a的库文件,直接把你的代码的*.o文件和libh264.a文件一块并加"-L库位置"选项给gcc编译即可,但如果是libh264.so文件,必须放到系统库文件目录下/lib,/usr/local/lib或/usr/lib下,并ldconfig一遍或添加LD_LIBRARY_PATH参数里面的库路径,不然你编译出来的可执行程序,系统执行时会提示找不到库的。
关键是编译的时的问题,如果是一个libh264.a的库文件,直接把你的代码的*.o文件和libh264.a文件一块并加"-L库位置"选项给gcc编译即可,但如果是libh264.so文件,必须放到系统库文件目录下/lib,/usr/local/lib或/usr/lib下,并ldconfig一遍或添加LD_LIBRARY_PATH参数里面的库路径,不然你编译出来的可执行程序,系统执行时会提示找不到库的。
更多追问追答
追问
它里面没有提供库,我编译好之后,产生一个可执行文件t264,我试着自己写过头文件,但是里面有好多是它自己定义的类型,弄到最后发现不行就停了,还有我也试着打包过库,静态或动态库,那在程序当中怎么包含头文件呢,如我要用到T264.h中的几个函数,是写成#include "T264.h",还是写这个文件的路径呢,#include "./avc/T264.h"等等,这里面的文件,和我要编写的程序文件应该怎么存放呢,放在同一目录下??还是怎么放呢?谢谢!
追答
那你就找到H264代码的main函数的地方,看一下它是怎么调用编解码函数的,然后把他的main函数改成一个接口函数,入参都预留出来自己设置。然后找到makefile,把最终生成可执行程序的地方修改成生成so或a文件,自己在写个这个函数的声明头文件,包在自己的应用中,再自己写个makefile把这个so或a文件包进来编译就行了嘛。
so或a生成命令,详细用法自己去查查吧
g++/gcc 一个或多个源文件(c/cpp/o文件) -fPIC -shared -o libXXX.so
ar -r libXXX.a 一个或多个源文件(o文件)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询