1. 編譯代碼出現問題
error: expected declaration specifiers or '...' before numeric constant void free(void *);
2. 先研究下這個free函數,應用代碼調用的底層在哪里?看起來是stdlib.h頭文件的,那么編譯的時候是用交叉編譯器的函數庫嗎?這個交叉編譯器和MT7621什么關系?
__THROW宏是純粹是linux平台上C庫才有的東西,其他平台(如windows)上的C庫里是不會有的。
在C里面,這個宏完全沒有意義。當這個頭文件被C++引用時,才有意義,其意義是聲明這個函數支持C++里的throw異常功能。
3. 在paho.mqtt.c里面,交叉編譯之后會生成4個.so的庫文件,可以看出來是分為同步和異步,帶不帶SSL,所以有4個,最后看自己使用哪個。
- paho-mqtt3a - asynchronous (MQTTAsync)
- paho-mqtt3as - asynchronous with SSL (MQTTAsync)
- paho-mqtt3c - "classic" / synchronous (MQTTClient)
- paho-mqtt3cs - "classic" / synchronous with SSL (MQTTClient)