• 4189阅读
  • 1回复

QT获取本机MAC [复制链接]

上一主题 下一主题
离线guantou319
 
只看楼主 倒序阅读 楼主  发表于: 2012-02-13
— 本帖被 XChinux 从 Qt图形编程 移动到本区(2012-02-13) —

/*
*需要配置的链接库有 Qtmain,QtNetwork4,QtCore4
*/


#include <Qt/QNetworkInterface.h>
#include <Qt/Qstring.h>
#include <Qt/QList.h>


using namespace std;


int main(){
    QList<QNetworkInterface>  NetList;                //网卡链表
    int NetCount = 0;                                //网卡个数
    int Neti = 0;
    QString MacStr;
    QNetworkInterface thisNet;                        //所要使用的网卡
    NetList = QNetworkInterface::allInterfaces();    //获取所有网卡信息
    NetCount = NetList.count();                        //统计网卡个数
    for(Neti = 0;Neti < NetCount; Neti++){            //遍历所有网卡
        if(NetList[Neti].isValid()){                //判断该网卡是否是合法
            thisNet = NetList[Neti];                //将该网卡置为当前网卡
            break;
        }
    }
    MacStr = thisNet.hardwareAddress();                //获取该网卡的MAC
        qDebug()<<MacStr;
}








上面的是从网上下的程序,编译的总报错:undefined reference to '_imp__ZN17QNetworkInterface...'
我几乎把所有关于QNetwork的头文件都加上了,还是不行。最后还是在网上找到了解决办法:在工程文件里,加上 QT+ = network。
之后我把这句话删掉也能正常运行了,工程文件里的代码是正常运行一遍后就没事干了吗?
离线yzatong

只看该作者 1楼 发表于: 2012-02-15
应该是生成的make文件中已经有network的信息,删除+network如果不重新生成make文件就没有问题。
快速回复
限100 字节
 
上一个 下一个