0

我正在使用 qt android 5.1.1

即使我将传感器添加到专业文件中,我也有问题是什么问题。

感谢您的任何评论。我的问题是:

../sensor_test/mainwindow.cpp:9: 错误:未定义引用 'QAccelerometer::QAccelerometer(QObject*)' ../sensor_test/mainwindow.cpp:19: 错误:未定义引用 'QSensor::QSensor(QByteArray const& , QObject*)' ../sensor_test/mainwindow.cpp:20: error: undefined reference to 'QSensor::start()' ../sensor_test/mainwindow.cpp:21: error: undefined reference to 'QSensor::reading () const' Makefile:146: 目标'libsensor_test.so'的配方失败../sensor_test/mainwindow.cpp:22: 错误: 未定义引用'QSensor::~QSensor()' ../sensor_test/mainwindow.cpp :22: 错误: 未定义引用 'QSensor::~QSensor()' collect2.exe: 错误: ld 返回 1 退出状态

我的简历:

#-------------------------------------------------
#
# Project created by QtCreator 2013-08-30T14:44:53
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = sensor_test
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

CONFIG += mobility
MOBILITY += sensors

OTHER_FILES += \
    android/AndroidManifest.xml \
    android/res/layout/splash.xml \
    android/res/values/libs.xml \
    android/res/values/strings.xml \
    android/res/values-de/strings.xml \
    android/res/values-el/strings.xml \
    android/res/values-es/strings.xml \
    android/res/values-et/strings.xml \
    android/res/values-fa/strings.xml \
    android/res/values-fr/strings.xml \
    android/res/values-id/strings.xml \
    android/res/values-it/strings.xml \
    android/res/values-ja/strings.xml \
    android/res/values-ms/strings.xml \
    android/res/values-nb/strings.xml \
    android/res/values-nl/strings.xml \
    android/res/values-pl/strings.xml \
    android/res/values-pt-rBR/strings.xml \
    android/res/values-ro/strings.xml \
    android/res/values-rs/strings.xml \
    android/res/values-ru/strings.xml \
    android/res/values-zh-rCN/strings.xml \
    android/res/values-zh-rTW/strings.xml \
    android/src/org/kde/necessitas/ministro/IMinistro.aidl \
    android/src/org/kde/necessitas/ministro/IMinistroCallback.aidl \
    android/src/org/qtproject/qt5/android/bindings/QtActivity.java \
    android/src/org/qtproject/qt5/android/bindings/QtApplication.java \
    android/version.xml

我的代码是:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ac=new QAccelerometer(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QSensor sensor("QAccelerometer");
    sensor.start();
    QSensorReading *read=sensor.reading();
    ui->lineEdit->setText(read->property("x").value<QString>());
}
4

1 回答 1

1

这是因为您正试图像使用 Qt 4 一样使用 QtSensors,即来自 Qt Mobility 时代。另外,我确信这一代出现了问题,因为 QtCreator 不应该生成类似的东西。请参阅下面的修复程序。

您应该替换这两行:

CONFIG += mobility
MOBILITY += sensors

和:

QT += sensors

有点题外话,但您还应该删除以下行,因为这两个模块默认情况下在 Qt 4 以及此处使用的 Qt 5 中隐式添加。

QT       += core gui

在这里你可以找到一个适合我的简短片段:

主文件

int main()
{
    QSensor sensor("QAccelerometer");
    sensor.start();
}

主程序

TARGET = sensor_test
TEMPLATE = app

QT += sensors

SOURCES += \
    main.cpp

确保 qmake 和 nmake 在您的 PATH 中,然后运行以下命令:

qmake && nmake

于 2013-09-06T08:27:40.930 回答