ESP8266 -- Linked resources not included in derived makefile [message #1801980] |
Wed, 30 January 2019 09:19 |
Thomas Thompson Messages: 1 Registered: January 2019 |
Junior Member |
|
|
I am trying to return to using Eclipse to build some ESP8266 projects. I have a project that worked some time back on oxygen, but I've long since lost the setup I used. I'm still pretty new to all of this, so I would appreciate any help here as I've been at this for a couple days now :)
I've installed the latest Eclipse (2018-12) and the Eclipse C++ IDE for Arduino 3.0. I have the ESP8266 platform installed. I have created a new Arduino project and pulled the source code files from my old project forward.
I have a list of issues, but the one I haven't been able to work around yet is that linked resources are not being pulled into the derived makefile that is created for the project. Thus when I go to build, the build fails.
Here is the failing step:
Building GarageDoorSecure
"C:/Users/TJ/.arduinocdt/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\Users\TJ\.arduinocdt\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/include" "-IC:\Users\TJ\.arduinocdt\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include" "-I./core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections -DF_CPU=80000000L -DLWIP_OPEN_SRC -DARDUINO=10608 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_ESP01" -DESP8266 -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/variants/generic" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/libraries/DNSServer/src" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WebServer/src" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WiFi/src" -I"C:/Users/TJ/.arduinocdt/libraries/LinkedList" -I"C:/Users/TJ/.arduinocdt/libraries/WiFiManager/0.14.0" -I"C:/Users/TJ/.arduinocdt/libraries/PubSubClient/2.7.0/src" "../../MQTT_GarageDoorMonitor.cpp" -o "project/MQTT_GarageDoorMonitor.cpp.o"
In file included from ../../MQTT_GarageDoorMonitor.cpp:4:0:
F:/eclipse-workspace/GarageDoorSecure/ConfigAndWiFiManager.h:8:24: fatal error: ConfigFile.h: No such file or directory
#include <ConfigFile.h>
^
compilation terminated.
make: *** [project/MQTT_GarageDoorMonitor.cpp.o] Error 1
makefile:133: recipe for target 'project/MQTT_GarageDoorMonitor.cpp.o' failed
If I modify this command by adding these includes, the command will complete successfully:
-I"C:/Users/TJ/.arduinocdt/libraries/ArduinoJson/5.13.4/src" -- Workaround as I can't get the library manager to install old lib version
-I"F:/Users/TJ/Arduino/libraries/ConfigFile" -- Custom library used by other projects
-I"F:/Users/TJ/Arduino/libraries/Door" -- Custom library used by other projects
-I"F:/eclipse-workspace/GarageDoorSecure" -- The project workspace itself. Very strange I have to add this I would think
Here is the command from the cmd prompt running succesfully with the three includes above:
F:\eclipse-workspace\GarageDoorSecure\build\Esp8266>"C:/Users/TJ/.arduinocdt/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\Users\TJ\.arduinocdt\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/include" "-IC:\Users\TJ\.arduinocdt\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include" "-I./core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections -DF_CPU=80000000L -DLWIP_OPEN_SRC -DARDUINO=10608 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_ESP01" -DESP8266 -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/variants/generic" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/libraries/DNSServer/src" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WebServer/src" -I"C:/Users/TJ/.arduinocdt/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WiFi/src" -I"C:/Users/TJ/.arduinocdt/libraries/LinkedList" -I"C:/Users/TJ/.arduinocdt/libraries/WiFiManager/0.14.0" -I"C:/Users/TJ/.arduinocdt/libraries/PubSubClient/2.7.0/src" -I"C:/Users/TJ/.arduinocdt/libraries/ArduinoJson/5.13.4/src" -I"F:/Users/TJ/Arduino/libraries/ConfigFile" -I"F:/Users/TJ/Arduino/libraries/Door" -I"F:/eclipse-workspace/GarageDoorSecure" "../../MQTT_GarageDoorMonitor.cpp" -o "project/MQTT_GarageDoorMonitor.cpp.o"
F:\eclipse-workspace\GarageDoorSecure\build\Esp8266>
These includes are all included in the project -- the first three via linked resources, and the last one in the project root itself:
Note the ConfigFile.h header that caused the above failure is showing in the linked resource.
If this were a standard C++ project, I would just add these through the preprocessor includes in the project settings. However, Arduino projects do not seem to have this option:
I could directly edit the makefile, but this is autogenerated and I also can't find a way to disable automatic makefile generation on an Arduino project. It would also be a major pain considering the problem seems very straightforward.
Could anyone give some pointers on how to fix this issue the right way? I don't understand how to ensure my linked resources make it into the makefile. It seems the Eclipse indexer finds them fine as I can access them while editing the code, but the makefile/compiler is never able to find them.
Thanks in advance, I would greatly appreciate any information :)
EDIT -- Added images
[Updated on: Fri, 01 February 2019 02:56] Report message to a moderator
|
|
|
|
Powered by
FUDForum. Page generated in 0.06499 seconds