嵌入式爱好者

查看: 28932|回复: 1

[Linux] 实例程序中的gui/can工程编译通不过啊

[复制链接]

2

主题

4

帖子

19

积分

i.MX6UL通行证i.MX6Q通行证

扫一扫,手机访问本帖
发表于 2017-3-10 09:36:50 | 显示全部楼层 |阅读模式
在Ubuntu pc上编译 OKMX6S-S2-Linux用户资料_20170210\OKMX6X-S2用户资料(A)\Linux\测试程序及源码\test\gui\can中的工程,没通过啊,提示信息:
/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/mkspecs/qws/linux-arm-g++ -I. -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtCore -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtNetwork -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtGui -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include -I. -I. -I. -o main.o main.cpp
/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/mkspecs/qws/linux-arm-g++ -I. -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtCore -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtNetwork -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include/QtGui -I/usr/local/Trolltech/QtEmbedded-4.8.5-arm/include -I. -I. -I. -o mainwindow.o mainwindow.cpp
mainwindow.cpp: In member function 'void MainWindow::on_send_clicked()':
mainwindow.cpp:32:5: error: 'string' is not a member of 'std'
mainwindow.cpp:32:18: error: expected ';' before 'str'
mainwindow.cpp:34:8: error: 'str' was not declared in this scope
mainwindow.cpp:43:30: error: 'str' was not declared in this scope
mainwindow.cpp: In member function 'void MainWindow::stopcan(int)':
mainwindow.cpp:114:5: error: '::close' has not been declared
make: *** [mainwindow.o] 错误 1

mainwindow.cpp文件中相关代码:
void MainWindow::on_send_clicked()
{
    struct can_frame frame;
    memset(&frame,0,sizeof(struct can_frame));
    std::string  str=ui->edit->text().toStdString();  //32行

    if(str.length() > 8)
    {
        QMessageBox::about(this,"error","length of send string must less than 8 bytes");
        return;
    }



    frame.can_id = 0x123;
    strcpy((char*)frame.data,str.c_str());
    frame.can_dlc = str.length();

    sendto(socket,&frame,sizeof(struct can_frame),0,(struct sockaddr*)&addr,sizeof(addr));
    return;
}

void MainWindow::stopcan(int v)
{
    if(t)
    {
        t->stop();
        t->deleteLater();
    }

    ::close(socket);  //114行

    if(v == 0)
        system("ifconfig can0 down");
    else
        system("ifconfig can1 down");
}

语法错误,能不能烦请技术人员检查验证一下。
回复

使用道具 举报

1

主题

3670

帖子

4157

积分

发表于 2017-3-10 10:03:55 | 显示全部楼层
您好:
       根据您的打印信息,初步看到是有一个变量str的申明有问题,建议您找找这个变量的申明。
技术支持电话:0312-3119192
技术支持邮箱:Android@forlinx.com
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 09:56

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表