当前位置: 技术问答>linux和unix
linux c/c++ 静态文件库
来源: 互联网 发布时间:2016-07-24
本文导语: 小弟刚学习在linux下cc++编程,用的是netbeans的集成开发工具,但是向各位高手请教一下,我有一个静态链接库.a文件和该库的头文件,我该怎样设置才能使neatbeans不报错:说没有定义该函数。谢谢各位高手了,有使用...
小弟刚学习在linux下cc++编程,用的是netbeans的集成开发工具,但是向各位高手请教一下,我有一个静态链接库.a文件和该库的头文件,我该怎样设置才能使neatbeans不报错:说没有定义该函数。谢谢各位高手了,有使用其他开发工具的也可以给我参考一下,不胜感激。
|
楼主可以试一下只包含该库的头文件,然后编译,如果不报错,OK。
如果报某个函数未定义,那么需要楼主在编译脚本里面把 -lxxx加上来,即把相应的静态库文件链接到你的可执行文件中。
如: g++ -o 目标文件名 -L库文件所在的路径 -l库文件名.
如果你的库文件不在系统的lib目录里面,那可能还需要设置环境变量
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${你的库文件所在的路径}
如果报某个函数未定义,那么需要楼主在编译脚本里面把 -lxxx加上来,即把相应的静态库文件链接到你的可执行文件中。
如: g++ -o 目标文件名 -L库文件所在的路径 -l库文件名.
如果你的库文件不在系统的lib目录里面,那可能还需要设置环境变量
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${你的库文件所在的路径}
|
正解
也可以用在ld.so.conf文件中加入路径
|
1.首先你要确认这个函数已经被实现了。
2. 确认把这个.a文件附加到了这个工程里。
2. 确认把这个.a文件附加到了这个工程里。
|
在makefile中是否链接了该静态库?
(如果用的是automake的话)makefile.am中是否追加了 -l xxx.a (具体是什么忘了,大概就是这意思)
(如果用的是automake的话)makefile.am中是否追加了 -l xxx.a (具体是什么忘了,大概就是这意思)
|
查看一下gcc的选项吧!
|
path
|
牛人很多,菜鸟有福了。