0420 测试记录 gcc 编译时 库文件 头文件问题及其解决方案

在尝试编译包含OpenCV的C++项目时,遇到了找不到头文件如cv.h和highgui.h,以及链接错误的问题。通过在编译命令中添加-L和-I选项,并确保PKG_CONFIG_PATH和LD_LIBRARY_PATH环境变量设置正确,最终解决了问题。正确指令包括使用pkg-config获取OpenCV的编译和链接选项,以及指定头文件和库的路径。
摘要由CSDN通过智能技术生成

[root@localhost c]# g++ -L/usr/local/lib -I/usr/local/includes -o morphology morphology.c
morphology.c:1:16: 错误:cv.h:没有那个文件或目录
morphology.c:2:21: 错误:highgui.h:没有那个文件或目录
morphology.c:6: 错误:expected constructor, destructor, or type conversion before ‘*’ token
morphology.c:7: 错误:expected constructor, destructor, or type conversion before ‘*’ token
morphology.c:9: 错误:expected constructor, destructor, or type conversion before ‘*’ token
morphology.c:10: 错误:‘CV_SHAPE_RECT’ 在此作用域中尚未声明
morphology.c: In function ‘void OpenClose(int)’:
morphology.c:22: 错误:‘element’ 在此作用域中尚未声明
morphology.c:22: 错误:‘cvCreateStructuringElementEx’ 在此作用域中尚未声明
morphology.c:25: 错误:‘src’ 在此作用域中尚未声明
morphology.c:25: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:25: 错误:‘cvErode’ 在此作用域中尚未声明
morphology.c:26: 错误:‘cvDilate’ 在此作用域中尚未声明
morphology.c:30: 错误:‘src’ 在此作用域中尚未声明
morphology.c:30: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:30: 错误:‘cvDilate’ 在此作用域中尚未声明
morphology.c:31: 错误:‘cvErode’ 在此作用域中尚未声明
morphology.c:33: 错误:‘cvReleaseStructuringElement’ 在此作用域中尚未声明
morphology.c:34: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:34: 错误:‘cvShowImage’ 在此作用域中尚未声明
morphology.c: In function ‘void ErodeDilate(int)’:
morphology.c:42: 错误:‘element’ 在此作用域中尚未声明
morphology.c:42: 错误:‘cvCreateStructuringElementEx’ 在此作用域中尚未声明
morphology.c:45: 错误:‘src’ 在此作用域中尚未声明
morphology.c:45: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:45: 错误:‘cvErode’ 在此作用域中尚未声明
morphology.c:49: 错误:‘src’ 在此作用域中尚未声明
morphology.c:49: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:49: 错误:‘cvDilate’ 在此作用域中尚未声明
morphology.c:51: 错误:‘cvReleaseStructuringElement’ 在此作用域中尚未声明
morphology.c:52: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:52: 错误:‘cvShowImage’ 在此作用域中尚未声明
morphology.c: In function ‘int main(int, char**)’:
morphology.c:59: 错误:‘src’ 在此作用域中尚未声明
morphology.c:59: 错误:‘cvLoadImage’ 在此作用域中尚未声明
morphology.c:69: 错误:‘dst’ 在此作用域中尚未声明
morphology.c:69: 错误:‘src’ 在此作用域中尚未声明
morphology.c:69: 错误:‘cvCloneImage’ 在此作用域中尚未声明
morphology.c:72: 错误:‘cvNamedWindow’ 在此作用域中尚未声明
morphology.c:76: 错误:‘cvCreateTrackbar’ 在此作用域中尚未声明
morphology.c:85: 错误:‘cvWaitKey’ 在此作用域中尚未声明
morphology.c:90: 错误:‘CV_SHAPE_ELLIPSE’ 在此作用域中尚未声明
morphology.c:92: 错误:‘CV_SHAPE_RECT’ 在此作用域中尚未声明
morphology.c:94: 错误:‘CV_SHAPE_CROSS’ 在此作用域中尚未声明
morphology.c:100: 错误:‘cvReleaseImage’ 在此作用域中尚未声明
morphology.c:104: 错误:‘cvDestroyWindow’ 在此作用域中尚未声明
[root@localhost c]# g++ -L/usr/local/lib -I/usr/local/include/opencv -o morphology morphology.c
/tmp/cchWFzpS.o: In function `ErodeDilate(int)':
morphology.c:(.text+0x66): undefined reference to `cvCreateStructuringElementEx'
morphology.c:(.text+0x9a): undefined reference to `cvErode'
morphology.c:(.text+0xc5): undefined reference to `cvDilate'
morphology.c:(.text+0xd1): undefined reference to `cvReleaseStructuringElement'
morphology.c:(.text+0xe6): undefined reference to `cvShowImage'
/tmp/cchWFzpS.o: In function `OpenClose(int)':
morphology.c:(.text+0x156): undefined reference to `cvCreateStructuringElementEx'
morphology.c:(.text+0x18a): undefined reference to `cvErode'
morphology.c:(.text+0x1b3): undefined reference to `cvDilate'
morphology.c:(.text+0x1de): undefined reference to `cvDilate'
morphology.c:(.text+0x207): undefined reference to `cvErode'
morphology.c:(.text+0x213): undefined reference to `cvReleaseStructuringElement'
morphology.c:(.text+0x228): undefined reference to `cvShowImage'
/tmp/cchWFzpS.o: In function `main':
morphology.c:(.text+0x27a): undefined reference to `cvLoadImage'
morphology.c:(.text+0x2b2): undefined reference to `cvCloneImage'
morphology.c:(.text+0x2cb): undefined reference to `cvNamedWindow'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值