c/c++ undefined reference to ‘funtion name'

来源:互联网 发布:大数据产品需求分析 编辑:程序博客网 时间:2024/06/08 17:35

undefined reference to `function name' 意思已经表达很清楚了,程序在链接的时候找不到这个函数的定义,如果这个函数是第三方的库的话, 需要检查是否在程序中导入了

这个库的静态库,或者动态库, windows .lib,.dll, linux  .a .so

windows上需要在工程设置上加上 库的搜索路径==

linux 如果是 ./configure  make && make install 三部曲之后 确保这个库是否安装成功

查看usr/local 下的 include 目录 和lib目录是否包含 这个库的相关头文件和库文件。

确保之后,编译链接程序还出现这个问题 很有可能是编译gcc 参数选项写出了

本人就遇到这个问题 。

我用的命令是gcc  -lenet demo.cpp 

这时候-lenet并不被解释,所以还是链接不上。

需要改成gcc demo.cpp -lenet

至于gcc -l ,-L 命令选项的用法介绍和解释大家可以搜索网上的信息.


miechal@miechal-ubuntu:/root$ ./a.out 
./a.out: error while loading shared libraries: libenet.so.1: cannot open shared object file: No such file or directory

miechal@miechal-ubuntu:/root$ locate libenet.so.1

/usr/local/lib/libenet.so.1
/usr/local/lib/libenet.so.1.0.3

这是程序默认安装的目录,而系统寻找库的目录是/usr/lib,则需要将so拷贝到/usr/lib中去或者做个软链接