[英]Disable function declaration error in avr g++
我正在使用此Makefile來編譯我的Arduino草圖,其中的CPP和C標志如下
CPPFLAGS += -mmcu=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARDUINO_VERSION) \
-I. -I$(ARDUINO_CORE_PATH) -I$(ARDUINO_VAR_PATH)/$(VARIANT) \
$(SYS_INCLUDES) $(USER_INCLUDES) -g -Os -w -Wall \
-ffunction-sections -fdata-sections
CFLAGS = -std=gnu99
CXXFLAGS = -fno-exceptions
編譯cpp文件時,如果在聲明函數之前使用了函數,則會出現致命錯誤。 我瀏覽了avr g ++選項 ,發現使用-Wimplicit-function-declaration選項可以啟用它。 還可以通過-Wall選項啟用它,該選項在make文件中使用。
我想啟用-Wall選項(因為它啟用了許多其他警告),但僅禁用-Wimplicit-function-declaration選項。
我檢查了文檔,但不知道如何執行此操作。 有人可以告訴我該怎么做嗎?
編譯C ++代碼時不能禁用該錯誤-這是致命錯誤,不是警告。
您可以(但不應)放棄使用C代碼(使用-Wno-implicit-function-declaration
),但這不適用於C ++。
cc1plus: warning: command line option "-Wno-implicit-function-declaration"
is valid for C/ObjC but not for C++
指 http://arduino.cc/en/Main/FAQ#.UyUa8vmSz99
引用
實際上,您已經是; Arduino語言只是可以從您的代碼中調用的一組C / C ++函數。 您的草圖進行了微小的更改(例如,自動生成函數原型) ,然后直接傳遞給C / C ++編譯器(avr-g ++)
更多信息; http://arduino.cc/en/Hacking/BuildProcess#.UyUa6vmSz98
Windows arduino IDE將在將函數聲明原型傳遞給編譯器之前對其進行預處理。
如果要復制arduino IDE,則需要將此預處理構建到arduino makefile項目中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.