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

本文详细介绍了在C++程序中遇到找不到特定库函数时的排查步骤,包括确认库文件是否正确导入,检查库路径设置,以及如何通过gcc命令行参数解决链接错误。同时提供了在不同操作系统下(Windows和Linux)处理库文件路径的指导,通过复制或创建软链接确保库文件可被程序正常访问。

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中去或者做个软链接


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值