移植unbuntu Qt项目到 windows 下(包含socket)

来源:互联网 发布:网络映射如何做 编辑:程序博客网 时间:2024/05/01 05:32

项目比较小,直接打开编译是错误的,qmake执行错误。

===========================================================

解决方法:

    将.h  .cpp .ui和.pro文件拷贝到新建的项目里。

编译时会出现很多错误:

1.no such file:

      #include<netinet/in.h>
      #include<arpa/inet.h>
      #include<sys/ioctl.h>
      #include<net/if.h>
      #include<sys/socket.h> 

解决方法:去掉这些头文件,添加:

        #include <winsock2.h>
        #pragma comment(lib,"WS2_32.Lib")

之后还是不识别send socket recv等函数,

还需要在.pro文件中添加:

        LIBS += -lWs2_32

建立socket之前,需要先执行WSAStartup()函数:

       WSADATA wsd;
       int err;
       err = WSAStartup(MAKEWORD(2,2), &wsd);

2. no such file:

        #include <QtWidgets>

解决方法:Qt5中是这个文件,Qt4中是#include <QtGui/QApplication>

3.  没有声明:QMessageBox  QFile

解决方案:添加#include <QFileDialog>  #include <QMessageBox>头文件

编译运行,就可以了

4.  setWindowTitle("标题")乱码
解决方法: 在MainWindow构造函数中添加字符设置函数,设置为UTF-8
      QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
      QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

0 0