gpt4 book ai didi

c++ - 如何将 QSerialPort 模块添加到 CMake 中?

转载 作者:太空狗 更新时间:2023-10-29 20:56:12 25 4
gpt4 key购买 nike

我想将 QSerialPort 模块添加到 CMake 中。根据我的理解,我需要将 QT += serialport 添加到 *.pro 中。我只想使用 CMake。所以我尝试编译简单的 CMake 文件,但它有错误。 QtCore 正在运行,因为 qDebug 可以毫无问题地显示。

我得到的错误是:

undefined reference to `QSerialPort::QSerialPort(QObject*)'
undefined reference to `QSerialPort::~QSerialPort()'
undefined reference to `QSerialPort::~QSerialPort()'

这是简单的 main.cpp 文件。

#include <iostream>
#include <QObject>
#include <QDebug>
#include <QCoreApplication>
#include <QtSerialPort/QSerialPort>

using namespace std;

int main() {
QSerialPort serialPort; //this line gives error
qDebug()<<"Hello Qt"; //this line is working as normal
cout << "Hello, World!" << endl;
return 0;
}

这是简单的 CMake 文件。

cmake_minimum_required(VERSION 3.3)
project(untitled1)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

find_package(Qt5Core COMPONENTS Qt5SerialPort REQUIRED)

set(SOURCE_FILES main.cpp)
add_executable(untitled1 ${SOURCE_FILES})
qt5_use_modules(untitled1 Core)

最佳答案

谢谢@tsyvarev .你的建议解决了问题。仅供其他人引用,我将这些工作文件发回。

简单的 main.cpp 文件:

#include <iostream>
#include <QObject>
#include <QDebug>
#include <QCoreApplication>
#include <QtSerialPort>

using namespace std;

int main() {
QSerialPort serialPort;
serialPort.setPortName("ttyACM1");
qDebug()<<"Hello Qt";
cout << "Hello, World!" << endl;
return 0;
}

简单的 CMake 文件:

cmake_minimum_required(VERSION 3.3)
project(untitled1)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

find_package(Qt5Core REQUIRED)

set(SOURCE_FILES main.cpp)
add_executable(untitled1 ${SOURCE_FILES})
qt5_use_modules(untitled1 Core SerialPort)

关于c++ - 如何将 QSerialPort 模块添加到 CMake 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34128686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com