QT Creator : undefined reference to `cv::VideoCapture::VideoCapture(int)‘

本文详细介绍了如何解决在使用Qt编译OpenCV项目时遇到的undefined reference to `cv::VideoCapture::VideoCapture(int)`错误。通过定位到cmark编译的OpenCV输出文件夹,并在.pro文件中添加特定的库路径,成功解决了编译链接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

undefined reference to `cv::VideoCapture::VideoCapture(int)’

  1. 找到cmark编译opencv的输出文件夹,我的是buildQT
  2. 在.pro文件夹后添加:
    LIBS += D:\qt_opencv_config\opencv3.4.0\buildQT\bin\libopencv_shape340.dll
    LIBS += D:\qt_opencv_config\opencv3.4.0\buildQT\bin\libopencv_videoio340.dll
### Ubuntu Qt C++ 连接 MySQL 的解决方案 在Ubuntu环境下使用Qt和C++连接MySQL时,如果遇到`undefined reference to 'mysql_init'`这样的链接错误,通常是因为编译器无法找到所需的库文件。以下是详细的解决方法: #### 1. 安装必要的开发包 确保已经安装了所有必需的MySQL客户端库以及相应的开发头文件。 ```bash sudo apt-get update sudo apt-get install mysql-client mysql-server libmysqlclient-dev libqt5sql5-mysql qtbase5-dev ``` 这会安装MySQL服务器、客户端及其对应的开发库,并且还会安装Qt SQL模块支持MySQL数据库[^1]。 #### 2. 设置项目配置文件 (`.pro`) 对于Qt Creator中的项目,在项目的`.pro`文件里添加如下行来指定要使用的MySQL库路径及名称: ```qmake LIBS += -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient INCLUDEPATH += /usr/include/mysql/ DEPENDPATH += /usr/include/mysql/ ``` 这里假设MySQL库位于默认位置 `/usr/lib/x86_64-linux-gnu/` 下;如果不是,则需调整 `-L` 参数指向实际目录。同样地,包含路径也应根据实际情况设置正确的位置[^3]。 #### 3. 编写并测试简单的程序 创建一个新的源代码文件用于验证是否能够成功调用MySQL API函数。下面是一个基本的例子: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QSqlError> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 或者其他主机名/IP地址 db.setUserName("your_username"); db.setPassword("your_password"); db.setDatabaseName("test"); if (!db.open()) { qDebug() << "Failed to connect:" << db.lastError().text(); return 1; } else { qDebug() << "Connected successfully!"; } return a.exec(); } ``` 此段代码尝试打开一个到本地MySQL实例的连接,并打印出成功与否的信息。注意替换其中的用户名、密码和其他参数以匹配自己的环境设定[^2]。 通过以上步骤应该可以解决问题。如果有任何疑问或进一步的帮助需求,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值