我正在使用Qt Android 5.1.1
而且我有问题,即使我向pro file添加传感器也有问题。
感谢您的任何评论。
我的问题是:
../sensor_test/mainwindow.cpp:9:错误:未定义对'QAccelerometer :: QAccelerometer(QObject *)'的引用
../sensor_test/mainwindow.cpp:19:错误:对'QSensor :: QSensor(QByteArray const&,QObject *)'的未定义引用
../sensor_test/mainwindow.cpp:20:错误:对'QSensor :: start()'的未定义引用
../sensor_test/mainwindow.cpp:21:错误:未定义对'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>());
}
最佳答案
这是因为您试图像使用Qt 4一样使用QtSensors,即从Qt Mobility时代开始。另外,我敢肯定,这一代出现了问题,因为QtCreator不应生成类似的东西。请参阅下面的修复程序。
您应该替换这两行:
CONFIG += mobility
MOBILITY += sensors
与:
QT += sensors
稍微偏离主题,但您还应该删除以下行,因为默认情况下,这两个模块在Qt 4和此处使用的Qt 5中是隐式添加的。
QT += core gui
在这里,您可以找到适合我的简短摘要:
main.cpp
int main()
{
QSensor sensor("QAccelerometer");
sensor.start();
}
main.pro
TARGET = sensor_test
TEMPLATE = app
QT += sensors
SOURCES += \
main.cpp
确保qmake和nmake在您的PATH中,然后运行以下命令:
qmake && nmake