【嵌入式Linux应用开发】2. 初步移植MQTT到Ubuntu和Linux开发板,使用交叉编译工具链生成的可执行程序连接失败

按照步骤已经成功在Ubuntu下执行使用gcc编译出的a.out程序,有了正确的结果


说明阿里云服务器的配置和MQTTAsync_subscribe.c相关代码的修改是成功的

但是!当我继续按照教程一步步移植mqtt到linux开发板,在开发板上执行使用
arm-buildroot-linux-gnueabihf-gcc MQTTAsync_subscribe.c -lpaho-mqtt3a这条指令编译出的a.out时,弹出连接失败的结果,我觉得这个结果说明程序已经执行了,说明我在把mqtt移植到开发板的过程中应该没有错吧


想请教各位老师和同学这个问题是啥原因啊,完全摸不着头脑了,应该不是代码的问题,因为使用gcc编译出的结果在ubuntu下能正常运行,阿里云服务器应该也正常,因为我使用MQTTX连接测试过。。。。。

问题解决了,简单描述一下我之前使用的是路由器加网线的连接模式,路由器有线链接开发板和主机,VMware双网卡模式,今天上午网络维修,无法上网,我就使用手机给电脑主机开热点,其他没变,开发板能通过nfs协议连接ubuntu,但是只有Windows能上网,ubuntu不行。我当时没管继续完成mqtt到开发板的移植,但是交叉编译出来的程序在开发板上执行后没有任何现象,类似卡死那种状态,我以为是ubuntu不能上网的原因,就换掉了路由器,改成USB网卡的桥接模式,windows和Ubuntu都能上网,然后交叉编译出来的可执行程序就出现我上面说的连接失败的现象。
现在网络恢复了,我刚刚换回双网卡路由器连接方式执行程序就成功了,但是我不知道原因是啥,
还是想请教老师或者大佬能解释一下这个问题

“改成USB网卡的桥接模式,windows和Ubuntu都能上网”,但是你的开发板是没法通过USB网卡连接方式连接外网的,所以你连不上服务器
你开发板连接路由器后,路由器能连接外网,那么你的开发板自然就可以连接外网接入服务器了