2017-01-22 31 views
-1

我正在研究一個具有大量現有代碼庫的電錶並試圖引入一些自動化測試。我寫了一個python腳本,爲ARM解碼一個Keil項目文件並生成一個makefile。所以大部分的定義和包含路徑實際上都是在keil項目文件中定義的。實際上,我添加了很多定義。make會在cygwin下截取一些編譯命令

說makefile文件是美好的,除了它從一些編譯命令中刪除前幾個字符。下面兩行是一個很好的編譯命令的例子,而且是一個糟糕的命令。很容易看到從編譯命令開始剝離「g ++ - 」。

它總是那5個字符。我有一個提示是失敗的文件有相對較長的路徑。

定義SHELL =/bin/bash不會改變任何內容。

g ++ -c ../Project/External/HAL/src/HWRNG.cpp -o obj/HWRNG.o -D IO =「」-D __I =「」-D __packed =「」-D ubyte8 =「unsigned long long」-std = C++ 11 -w -fpermissive -D __GNUC -D __USE_C99_MATH -D LOGICAL_NAME_REFERENCING -D EOSAL_NAMESPACE = CosemMeter -D USE_RTX -D STM32F412xG -D USE_STDPERIPH_DRIVER -D HSE_VALUE = 24000000 -D DEBUG_UART - D OLD_MCOR -D ENABLE_LTE_MODEM -I ../trace -I ../trace/EOSAL/src -I patch/include -I ../Project -I ../Project/Hardware -I ../Project/External/CosemServerLib -I ../Project/External/CosemServerLib/Project -I ../Project/External/CosemServerLib/External -I ../Project/External/HAL/inc -I ../Project/External/HAL/STM/32F4xx/drivers/inc -I ../Project/External/STM32F4xx/CMSIS/Device/ST/STM32F4xx/Include -I ../Project/External/STM32F4xx/CMSIS/Include -I ../Project/External/STM32F4xx/STM32F4xx_StdPe riph_Driver/inc -I ../Project/lib -I ../Project/lib/RTX/inc -I ../Project/lib/RTX/inc/RTL -I ../Project/lib/Mocana/src - 我../Project/Middlewares/Segger/USBH -I ../Project/Middlewares/Segger/Inc -I ../Project/SeggerCfg -I ../Project/LTE/inc

ç../Project /External/HAL/STM/32F4xx/drivers/src/EXTI_Driver.c -o obj/EXTI_Driver.o -D __IO =「」-D __I =「」-D __packed =「」-D ubyte8 =「unsigned long long」 -D __USE_C99_MATH -D LOGICAL_NAME_REFERENCING -D EOSAL_NAMESPACE = CosemMeter -D USE_RTX -D STM32F412xG -D USE_STDPERIPH_DRIVER -D HSE_VALUE = 24000000 -D DEBUG_UART -D OLD_MCOR -D ENABLE_LTE_MODEM -I ../trace -I ../trace/EOSAL/src -I patch/include -I ../Project -I ../Project/Hardware -I ../Project/External/CosemServerLib -I ../Project/External/CosemServerLib/Project -I ../Project/External/ CosemServerLib/External -I ../Project/External/HAL/inc -I ../Project/External/HAL/STM/32F4xx/drive rs/inc -I ../Project/External/STM32F4xx/CMSIS/Device/ST/STM32F4xx/Include -I ../Project/External/STM32F4xx/CMSIS/Include -I ../Project/External/STM32F4xx/STM32F4xx_StdPeriph_Driver/ inc -I ../Project/lib -I ../Project/lib/RTX/inc -I ../Project/lib/RTX/inc/RTL -I ../Project/lib/Mocana/src -I。 ./Project/Middlewares/Segger/USBH -I ../Project/Middlewares/Segger/Inc -I ../Project/SeggerCfg -I ../Project/LTE/inc /bin/sh:c:command not found make:[Makefile:167:obj/EXTI_Driver.o]錯誤127(忽略)

回答

0

我在過去幾周的路上,昨天向同事展示了我的問題。他立即注意到這是C編譯器如此行事,並且C++的行爲正常。我錯誤地定義了C symbiles的CC符號。