一直沒有注意這個問題,直到剛才發現,寫Makefile時需要這樣寫:
$(CC) $(SRC) $(CFLAGS) $(LDFLAGS) -o $(TARGET)才會有效。
否則總是提醒類似下面的內容:
[zhang@zwfedora23 testmpp]$ make /tmp/ccaYVZpD.o: In function `mpi_test':main.c:(.text+0x28): undefined reference to `AI_ipe for target 'test' failedmake: *** [test] Error 1[zhang@zwfedora23 testmpp]$而我又重點查看了所使用的靜態庫,確實包含了AI_xxx這幾個接口。 同時也檢查了CC和AR的值,也都是 arm-linux- 的前綴。
當時就感覺TMD見了鬼了。到底是哪里的問題。。。。。
然后就嘗試使用手工輸入arm-linux-gcc 。。。。那一長串的命令編譯,沒有想到的是竟然通過了,而且生成的二進制文件也可以執行。接下來就是對比這兩者的區別,這才發現$(SRC)的位置的秘密。多半天的時間啥都沒干啊。
新聞熱點
疑難解答