今天在寫程序後,使用交叉編譯器編譯程序,出現了以下問題。
看圖,運行Makefile,編譯出現問題,其中open_serial()函數和serial_init()函數在serial.c中定義,socket_init()函數在tcp.c中定義,但main.c中有調用socket_init(),open_serial(),serial_init()函數,所以我將main.c程序換了下位置,放在了serial.c和tcp.c之後,然後直接用交叉編譯器編譯,該問題解決,如下圖
但是編譯時沒有帶-lpthread選項,所以又出現了其他錯誤,開始以爲是pthread_create等函數的頭文件忘了定義,結果程序中有,編譯時加上-lpthread就好了,
****************************************
其實,我在Makefile中改了main.c順序還是報錯誤
下面是我最開始的Makefile文件
後來想了下,改了Makefile文件,將-Wall和-Werror選項去掉,如下
再進行make,成功!
總結:應該是-Werror選項將gcc所有警告當成錯誤處理了,這是警告,可能是我程序之間的連接有些問題,但是可以運行成功的
***********************************************
OK!!