error: expected declaration specifiers or '...' before numeric constant void free(void *);


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM