Référence indéfinie et makefile

Bonjour,

Je génère du code C++ via Papyrus-RT grâce à des modèle UML-RT et je souhaite porter cela sous arduino.
Le code généré se présente en deux morceau, d’un côté le code C++ spécifique au modèle UML-RT crée et de l’autre une grosse libraire.
Après beaucoup de référence indéfinie je me suis rendu compte que la lib etais compiler pour x86 64bit ce qui parait logique. J’ai donc passé une semaine à compiler la lib via avr 8bit et une fois cela fait, c’est le retour de mes référence indéfinie.
J’ai vraiment du mal à comprendre pourquoi. J’ai tenter de mettre le lib dans le dossier de lib arduino, de faire le makefile moi même etc…

Voici comment est organisé mon dossier :

.
├── Controller.cc
├── Controller.hh
├── Makefile
├── OnOff.cc
├── OnOff.hh
├── Top.cc
├── Top.hh
├── TopControllers.cc
├── TopControllers.hh
├── TopMainLoc.ino
├── build
│   ├── build.options.json
│   ├── core
│   │   ├── CDC.cpp.d
│   │   ├── CDC.cpp.o
│   │   ├── HardwareSerial.cpp.d
│   │   ├── HardwareSerial.cpp.o
│   │   ├── HardwareSerial0.cpp.d
│   │   ├── HardwareSerial0.cpp.o
│   │   ├── HardwareSerial1.cpp.d
│   │   ├── HardwareSerial1.cpp.o
│   │   ├── HardwareSerial2.cpp.d
│   │   ├── HardwareSerial2.cpp.o
│   │   ├── HardwareSerial3.cpp.d
│   │   ├── HardwareSerial3.cpp.o
│   │   ├── IPAddress.cpp.d
│   │   ├── IPAddress.cpp.o
│   │   ├── PluggableUSB.cpp.d
│   │   ├── PluggableUSB.cpp.o
│   │   ├── Print.cpp.d
│   │   ├── Print.cpp.o
│   │   ├── Stream.cpp.d
│   │   ├── Stream.cpp.o
│   │   ├── Tone.cpp.d
│   │   ├── Tone.cpp.o
│   │   ├── USBCore.cpp.d
│   │   ├── USBCore.cpp.o
│   │   ├── WInterrupts.c.d
│   │   ├── WInterrupts.c.o
│   │   ├── WMath.cpp.d
│   │   ├── WMath.cpp.o
│   │   ├── WString.cpp.d
│   │   ├── WString.cpp.o
│   │   ├── abi.cpp.d
│   │   ├── abi.cpp.o
│   │   ├── core.a
│   │   ├── hooks.c.d
│   │   ├── hooks.c.o
│   │   ├── main.cpp.d
│   │   ├── main.cpp.o
│   │   ├── new.cpp.d
│   │   ├── new.cpp.o
│   │   ├── wiring.c.d
│   │   ├── wiring.c.o
│   │   ├── wiring_analog.c.d
│   │   ├── wiring_analog.c.o
│   │   ├── wiring_digital.c.d
│   │   ├── wiring_digital.c.o
│   │   ├── wiring_pulse.S.d
│   │   ├── wiring_pulse.S.o
│   │   ├── wiring_pulse.c.d
│   │   ├── wiring_pulse.c.o
│   │   ├── wiring_shift.c.d
│   │   └── wiring_shift.c.o
│   ├── includes.cache
│   ├── libraries
│   ├── preproc
│   │   └── ctags_target_for_gcc_minus_e.cpp
│   └── sketch
│       ├── Controller.hh
│       ├── OnOff.hh
│       ├── Top.hh
│       ├── TopControllers.hh
│       ├── TopMainLoc.ino.cpp
│       ├── TopMainLoc.ino.cpp.d
│       ├── TopMainLoc.ino.cpp.o
│       ├── interact.hh
│       └── umlrts
│           ├── include
│           │   ├── umlrtapi.hh
│           │   ├── umlrtbasicthread.hh
│           │   ├── umlrtcapsule.hh
│           │   ├── umlrtcapsuleclass.hh
│           │   ├── umlrtcapsuleid.hh
│           │   ├── umlrtcapsulepart.hh
│           │   ├── umlrtcapsulerole.hh
│           │   ├── umlrtcapsuletocontrollermap.hh
│           │   ├── umlrtcommsport.hh
│           │   ├── umlrtcommsportfarend.hh
│           │   ├── umlrtcommsportrole.hh
│           │   ├── umlrtcontroller.hh
│           │   ├── umlrtcontrollercommand.hh
│           │   ├── umlrtframeprotocol.hh
│           │   ├── umlrtframeservice.hh
│           │   ├── umlrtguard.hh
│           │   ├── umlrthashmap.hh
│           │   ├── umlrtinoutsignal.hh
│           │   ├── umlrtinsignal.hh
│           │   ├── umlrtlogprotocol.hh
│           │   ├── umlrtmain.hh
│           │   ├── umlrtmessage.hh
│           │   ├── umlrtmessagepool.hh
│           │   ├── umlrtmessagequeue.hh
│           │   ├── umlrtmutex.hh
│           │   ├── umlrtobjectclass.hh
│           │   ├── umlrtobjectclassgeneric.hh
│           │   ├── umlrtoutsignal.hh
│           │   ├── umlrtpool.hh
│           │   ├── umlrtpriority.hh
│           │   ├── umlrtprioritymessagequeue.hh
│           │   ├── umlrtprotocol.hh
│           │   ├── umlrtqueue.hh
│           │   ├── umlrtqueueelement.hh
│           │   ├── umlrtrtsinterface.hh
│           │   ├── umlrtrtsinterfaceumlrt.hh
│           │   ├── umlrtsemaphore.hh
│           │   ├── umlrtsignal.hh
│           │   ├── umlrtsignalelement.hh
│           │   ├── umlrtsignalelementpool.hh
│           │   ├── umlrtslot.hh
│           │   ├── umlrttimer.hh
│           │   ├── umlrttimerid.hh
│           │   ├── umlrttimerpool.hh
│           │   ├── umlrttimerprotocol.hh
│           │   ├── umlrttimerqueue.hh
│           │   ├── umlrttimespec.hh
│           │   └── umlrtuserconfig.hh
│           ├── os
│           │   ├── linux
│           │   │   └── include
│           │   │       ├── osnotify.hh
│           │   │       ├── osselect.hh
│           │   │       ├── ostime.hh
│           │   │       └── osutil.hh
│           │   └── windows
│           │       └── include
│           │           ├── osnotify.hh
│           │           ├── osselect.hh
│           │           ├── ostime.hh
│           │           └── osutil.hh
│           ├── umlrt
│           │   └── src
│           │       └── include
│           │           └── umlrtgetopt.hh
│           └── util
│               └── include
│                   ├── basedebug.hh
│                   ├── basedebugtype.hh
│                   └── basefatal.hh
├── interact.cc
├── interact.hh
└── umlrts
    ├── CMakeLists.txt
    ├── Makefile
    ├── build
    │   ├── buildenv.cmake
    │   ├── buildtools
    │   │   ├── avr-gcc
    │   │   │   └── buildtools.mk
    │   │   ├── config.cmake
    │   │   ├── darwin
    │   │   │   └── config.cmake
    │   │   ├── linux
    │   │   │   └── config.cmake
    │   │   ├── windows
    │   │   │   └── config.cmake
    │   │   ├── x86-VisualC++-12.0
    │   │   │   └── buildtools.mk
    │   │   ├── x86-gcc-4.6.3
    │   │   │   └── buildtools.mk
    │   │   └── x86-gcc-4.6.3-debug
    │   │       └── buildtools.mk
    │   ├── config.cmake
    │   ├── host
    │   │   └── host.mk
    │   ├── os
    │   │   ├── default.mk
    │   │   ├── files.cmake
    │   │   ├── linux
    │   │   │   ├── files.cmake
    │   │   │   └── os.mk
    │   │   └── windows
    │   │       ├── files.cmake
    │   │       └── os.mk
    │   └── rtslib.cmake
    ├── include
    │   ├── umlrtapi.hh
    │   ├── umlrtbasicthread.hh
    │   ├── umlrtcapsule.hh
    │   ├── umlrtcapsuleclass.hh
    │   ├── umlrtcapsuleid.hh
    │   ├── umlrtcapsulepart.hh
    │   ├── umlrtcapsulerole.hh
    │   ├── umlrtcapsuletocontrollermap.hh
    │   ├── umlrtcommsport.hh
    │   ├── umlrtcommsportfarend.hh
    │   ├── umlrtcommsportrole.hh
    │   ├── umlrtcontroller.hh
    │   ├── umlrtcontrollercommand.hh
    │   ├── umlrtframeprotocol.hh
    │   ├── umlrtframeservice.hh
    │   ├── umlrtguard.hh
    │   ├── umlrthashmap.hh
    │   ├── umlrtinoutsignal.hh
    │   ├── umlrtinsignal.hh
    │   ├── umlrtlogprotocol.hh
    │   ├── umlrtmain.hh
    │   ├── umlrtmessage.hh
    │   ├── umlrtmessagepool.hh
    │   ├── umlrtmessagequeue.hh
    │   ├── umlrtmutex.hh
    │   ├── umlrtobjectclass.hh
    │   ├── umlrtobjectclassgeneric.hh
    │   ├── umlrtoutsignal.hh
    │   ├── umlrtpool.hh
    │   ├── umlrtpriority.hh
    │   ├── umlrtprioritymessagequeue.hh
    │   ├── umlrtprotocol.hh
    │   ├── umlrtqueue.hh
    │   ├── umlrtqueueelement.hh
    │   ├── umlrtrtsinterface.hh
    │   ├── umlrtrtsinterfaceumlrt.hh
    │   ├── umlrtsemaphore.hh
    │   ├── umlrtsignal.hh
    │   ├── umlrtsignalelement.hh
    │   ├── umlrtsignalelementpool.hh
    │   ├── umlrtslot.hh
    │   ├── umlrttimer.hh
    │   ├── umlrttimerid.hh
    │   ├── umlrttimerpool.hh
    │   ├── umlrttimerprotocol.hh
    │   ├── umlrttimerqueue.hh
    │   ├── umlrttimespec.hh
    │   └── umlrtuserconfig.hh
    ├── lib
    │   ├── arduino.avr-gcc
    │   │   └── librts.a
    │   └── linux.x86-gcc-4.6.3
    │       └── librts.a
    ├── obj
    │   ├── arduino.avr-gcc
    │   │   └── umlrt
    │   │       ├── src
    │   │       │   └── umlrtgetopt.o
    │   │       ├── umlrtapi.o
    │   │       ├── umlrtbasicthread.o
    │   │       ├── umlrtcapsule.o
    │   │       ├── umlrtcapsuleid.o
    │   │       ├── umlrtcapsuletocontrollermap.o
    │   │       ├── umlrtcommsport.o
    │   │       ├── umlrtcontroller.o
    │   │       ├── umlrtframeprotocol.o
    │   │       ├── umlrtframeservice.o
    │   │       ├── umlrthashmap.o
    │   │       ├── umlrtinoutsignal.o
    │   │       ├── umlrtinsignal.o
    │   │       ├── umlrtlogprotocol.o
    │   │       ├── umlrtmain.o
    │   │       ├── umlrtmainloop.o
    │   │       ├── umlrtmaintargetshutdown.o
    │   │       ├── umlrtmaintargetstartup.o
    │   │       ├── umlrtmessage.o
    │   │       ├── umlrtmessagepool.o
    │   │       ├── umlrtmessagequeue.o
    │   │       ├── umlrtobjectclass.o
    │   │       ├── umlrtoutsignal.o
    │   │       ├── umlrtpool.o
    │   │       ├── umlrtprioritymessagequeue.o
    │   │       ├── umlrtprotocol.o
    │   │       ├── umlrtqueue.o
    │   │       ├── umlrtrtsinterfaceumlrt.o
    │   │       ├── umlrtsignal.o
    │   │       ├── umlrtsignalelement.o
    │   │       ├── umlrtsignalelementpool.o
    │   │       ├── umlrttimerid.o
    │   │       ├── umlrttimerpool.o
    │   │       ├── umlrttimerprotocol.o
    │   │       ├── umlrttimerqueue.o
    │   │       └── umlrttimespec.o
    │   ├── arduino.x86-gcc-4.6.3
    │   │   └── umlrt
    │   │       ├── src
    │   │       │   └── umlrtgetopt.o
    │   │       ├── umlrtapi.o
    │   │       ├── umlrtbasicthread.o
    │   │       ├── umlrtcapsule.o
    │   │       └── umlrtcapsuleid.o
    │   ├── linux.avr-gcc
    │   │   ├── os
    │   │   │   └── linux
    │   │   │       ├── osbasicthread.o
    │   │   │       └── osmutex.o
    │   │   ├── umlrt
    │   │   │   ├── src
    │   │   │   │   └── umlrtgetopt.o
    │   │   │   ├── umlrtapi.o
    │   │   │   ├── umlrtbasicthread.o
    │   │   │   ├── umlrtcapsule.o
    │   │   │   ├── umlrtcapsuleid.o
    │   │   │   ├── umlrtcapsuletocontrollermap.o
    │   │   │   ├── umlrtcommsport.o
    │   │   │   ├── umlrtcontroller.o
    │   │   │   ├── umlrtframeprotocol.o
    │   │   │   ├── umlrtframeservice.o
    │   │   │   ├── umlrthashmap.o
    │   │   │   ├── umlrtinoutsignal.o
    │   │   │   ├── umlrtinsignal.o
    │   │   │   ├── umlrtlogprotocol.o
    │   │   │   ├── umlrtmain.o
    │   │   │   ├── umlrtmainloop.o
    │   │   │   ├── umlrtmaintargetshutdown.o
    │   │   │   ├── umlrtmaintargetstartup.o
    │   │   │   ├── umlrtmessage.o
    │   │   │   ├── umlrtmessagepool.o
    │   │   │   ├── umlrtmessagequeue.o
    │   │   │   ├── umlrtobjectclass.o
    │   │   │   ├── umlrtoutsignal.o
    │   │   │   ├── umlrtpool.o
    │   │   │   ├── umlrtprioritymessagequeue.o
    │   │   │   ├── umlrtprotocol.o
    │   │   │   ├── umlrtqueue.o
    │   │   │   ├── umlrtrtsinterfaceumlrt.o
    │   │   │   ├── umlrtsignal.o
    │   │   │   ├── umlrtsignalelement.o
    │   │   │   ├── umlrtsignalelementpool.o
    │   │   │   ├── umlrttimerid.o
    │   │   │   ├── umlrttimerpool.o
    │   │   │   ├── umlrttimerprotocol.o
    │   │   │   ├── umlrttimerqueue.o
    │   │   │   └── umlrttimespec.o
    │   │   └── util
    │   │       ├── basedebug.o
    │   │       └── basefatal.o
    │   └── linux.x86-gcc-4.6.3
    │       ├── os
    │       │   └── linux
    │       │       ├── osbasicthread.o
    │       │       ├── osmutex.o
    │       │       ├── osnotify.o
    │       │       ├── ossemaphore.o
    │       │       ├── ostime.o
    │       │       └── ostimespec.o
    │       ├── umlrt
    │       │   ├── src
    │       │   │   └── umlrtgetopt.o
    │       │   ├── umlrtapi.o
    │       │   ├── umlrtbasicthread.o
    │       │   ├── umlrtcapsule.o
    │       │   ├── umlrtcapsuleid.o
    │       │   ├── umlrtcapsuletocontrollermap.o
    │       │   ├── umlrtcommsport.o
    │       │   ├── umlrtcontroller.o
    │       │   ├── umlrtframeprotocol.o
    │       │   ├── umlrtframeservice.o
    │       │   ├── umlrthashmap.o
    │       │   ├── umlrtinoutsignal.o
    │       │   ├── umlrtinsignal.o
    │       │   ├── umlrtlogprotocol.o
    │       │   ├── umlrtmain.o
    │       │   ├── umlrtmainloop.o
    │       │   ├── umlrtmaintargetshutdown.o
    │       │   ├── umlrtmaintargetstartup.o
    │       │   ├── umlrtmessage.o
    │       │   ├── umlrtmessagepool.o
    │       │   ├── umlrtmessagequeue.o
    │       │   ├── umlrtobjectclass.o
    │       │   ├── umlrtoutsignal.o
    │       │   ├── umlrtpool.o
    │       │   ├── umlrtprioritymessagequeue.o
    │       │   ├── umlrtprotocol.o
    │       │   ├── umlrtqueue.o
    │       │   ├── umlrtrtsinterfaceumlrt.o
    │       │   ├── umlrtsignal.o
    │       │   ├── umlrtsignalelement.o
    │       │   ├── umlrtsignalelementpool.o
    │       │   ├── umlrttimerid.o
    │       │   ├── umlrttimerpool.o
    │       │   ├── umlrttimerprotocol.o
    │       │   ├── umlrttimerqueue.o
    │       │   └── umlrttimespec.o
    │       └── util
    │           ├── basedebug.o
    │           └── basefatal.o
    ├── os
    │   ├── linux
    │   │   ├── include
    │   │   │   ├── osnotify.hh
    │   │   │   ├── osselect.hh
    │   │   │   ├── ostime.hh
    │   │   │   └── osutil.hh
    │   │   ├── osbasicthread.cc
    │   │   ├── osmutex.cc
    │   │   ├── osnotify.cc
    │   │   ├── ossemaphore.cc
    │   │   ├── ostime.cc
    │   │   └── ostimespec.cc
    │   ├── stub
    │   │   └── basedebug.cc
    │   └── windows
    │       ├── include
    │       │   ├── osnotify.hh
    │       │   ├── osselect.hh
    │       │   ├── ostime.hh
    │       │   └── osutil.hh
    │       ├── osbasicthread.cc
    │       ├── osmutex.cc
    │       ├── osnotify.cc
    │       ├── ossemaphore.cc
    │       ├── ostime.cc
    │       └── ostimespec.cc
    ├── script
    │   └── git-showid.sh
    ├── umlrt
    │   ├── src
    │   │   ├── include
    │   │   │   └── umlrtgetopt.hh
    │   │   └── umlrtgetopt.cc
    │   ├── umlrtapi.cc
    │   ├── umlrtbasicthread.cc
    │   ├── umlrtcapsule.cc
    │   ├── umlrtcapsuleid.cc
    │   ├── umlrtcapsuletocontrollermap.cc
    │   ├── umlrtcommsport.cc
    │   ├── umlrtcontroller.cc
    │   ├── umlrtframeprotocol.cc
    │   ├── umlrtframeservice.cc
    │   ├── umlrthashmap.cc
    │   ├── umlrtinoutsignal.cc
    │   ├── umlrtinsignal.cc
    │   ├── umlrtlogprotocol.cc
    │   ├── umlrtmain.cc
    │   ├── umlrtmainloop.cc
    │   ├── umlrtmaintargetshutdown.cc
    │   ├── umlrtmaintargetstartup.cc
    │   ├── umlrtmessage.cc
    │   ├── umlrtmessagepool.cc
    │   ├── umlrtmessagequeue.cc
    │   ├── umlrtobjectclass.cc
    │   ├── umlrtoutsignal.cc
    │   ├── umlrtpool.cc
    │   ├── umlrtprioritymessagequeue.cc
    │   ├── umlrtprotocol.cc
    │   ├── umlrtqueue.cc
    │   ├── umlrtrtsinterfaceumlrt.cc
    │   ├── umlrtsignal.cc
    │   ├── umlrtsignalelement.cc
    │   ├── umlrtsignalelementpool.cc
    │   ├── umlrttimerid.cc
    │   ├── umlrttimerpool.cc
    │   ├── umlrttimerprotocol.cc
    │   ├── umlrttimerqueue.cc
    │   └── umlrttimespec.cc
    ├── util
    │   ├── basedebug.cc
    │   ├── basefatal.cc
    │   └── include
    │       ├── basedebug.hh
    │       ├── basedebugtype.hh
    │       └── basefatal.hh
    └── x86-gcc-4.6.3

66 directories, 394 files

Mes commande de compilations :

	main:
	@echo
	@echo '====================================================================='
	@echo '|                            preprocess                             |'
	@echo '====================================================================='
	@echo

	arduino-builder -preprocess -verbose -hardware $(ARDUINO)/hardware -tools $(ARDUINO)/tools-builder -libraries $(UMLRTS) -fqbn=$(CART) -build-path build -warnings default TopMainLoc.ino

	@echo
	@echo '========================================================================'
	@echo '|                              dump-prefs                              |'
	@echo '========================================================================'
	@echo

	arduino-builder -dump-prefs -verbose -hardware $(ARDUINO)/hardware -tools $(ARDUINO)/tools-builder -libraries $(UMLRTS) -fqbn=$(CART) -build-path build -warnings default TopMainLoc.ino

	@echo
	@echo '====================================================================='
	@echo '|                              compile                              |'
	@echo '====================================================================='
	@echo

	avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I$(ARDUINO)/hardware/archlinux-arduino/avr/cores/arduino -I$(ARDUINO)/hardware/archlinux-arduino/avr/variants/standard build/sketch/TopMainLoc.ino.cpp -o /dev/null -DARDUINO_LIB_DISCOVERY_PHASE

	avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I$(ARDUINO)/hardware/archlinux-arduino/avr/cores/arduino -I$(ARDUINO)/hardware/archlinux-arduino/avr/variants/standard build/sketch/TopMainLoc.ino.cpp -o build/preproc/ctags_target_for_gcc_minus_e.cpp -DARDUINO_LIB_DISCOVERY_PHASE

	avr-g++ -c -g -Os -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I$(ARDUINO)/hardware/archlinux-arduino/avr/cores/arduino -I$(ARDUINO)/hardware/archlinux-arduino/avr/variants/standard build/sketch/TopMainLoc.ino.cpp -o build/sketch/TopMainLoc.ino.cpp.o

	avr-gcc -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o build/TopMainLoc.ino.elf build/sketch/TopMainLoc.ino.cpp.o build/core/core.a -L umlrts -L build/ -lm

De la lib son inclus comme : “umlrts/include/umlrtmain.hh” (mais j’ai essayer sans le chemin)

et les message d’erreur intervienne au moment du linkage sur la commande avr-gcc…

les erreur compètes :

=====================================================================
|                              compile                              |
=====================================================================

# option g++ :
# -fpermissive Downgrade some diagnostics about nonconformant code from errors to warnings. Thus, using -fpermissive allows some nonconforming code to compile.
# -c to compile but not link
# -g to produce debugging information
# -Os Optimize for size
# -ffunction-sections -fdata-sections opti
# -w Inhibit all warning messages.
# -fno-threadsafe-statics reduce code size slightly in code that doesn’t need to be thread-safe.
# -flto is link-time optimize.
# -x laguage
#arduino-builder -compile -verbose -hardware /usr/share/arduino/hardware -tools /usr/share/arduino/tools-builder -libraries umlrts/obj/arduino.avr-gcc/umlrt -fqbn=archlinux-arduino:avr:uno -build-path build -warnings default TopMainLoc.ino
avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/usr/share/arduino/hardware/archlinux-arduino/avr/cores/arduino -I/usr/share/arduino/hardware/archlinux-arduino/avr/variants/standard build/sketch/TopMainLoc.ino.cpp -o /dev/null -DARDUINO_LIB_DISCOVERY_PHASE
avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/usr/share/arduino/hardware/archlinux-arduino/avr/cores/arduino -I/usr/share/arduino/hardware/archlinux-arduino/avr/variants/standard build/sketch/TopMainLoc.ino.cpp -o build/preproc/ctags_target_for_gcc_minus_e.cpp -DARDUINO_LIB_DISCOVERY_PHASE
#arduino-ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives build/preproc/ctags_target_for_gcc_minus_e.cpp
avr-g++ -c -g -Os -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/usr/share/arduino/hardware/archlinux-arduino/avr/cores/arduino -I/usr/share/arduino/hardware/archlinux-arduino/avr/variants/standard build/sketch/TopMainLoc.ino.cpp -o build/sketch/TopMainLoc.ino.cpp.o
avr-gcc -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o build/TopMainLoc.ino.elf build/sketch/TopMainLoc.ino.cpp.o build/core/core.a -L umlrts -L build/ -lm
/usr/bin/avr-ld : /tmp/TopMainLoc.ino.elf.5OJWr8.ltrans0.ltrans.o : dans la fonction « _GLOBAL__sub_D_main » :
/home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x0) : référence indéfinie vers « UMLRTMain::setArgs(int, char* const*) »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x8) : référence indéfinie vers « Top_slots »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0xa) : référence indéfinie vers « Top_slots »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0xc) : référence indéfinie vers « UMLRTCapsuleToControllerMap::setDefaultSlotList(UMLRTSlot*, unsigned int) »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x10) : référence indéfinie vers « UMLRTMain::targetStartup() »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x1a) : référence indéfinie vers « DefaultController »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x1e) : référence indéfinie vers « DefaultController »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x20) : référence indéfinie vers « UMLRTController::spawn() »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x24) : référence indéfinie vers « UMLRTMain::mainLoop() »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x2c) : référence indéfinie vers « UMLRTMain::targetShutdown(bool) »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x32) : référence indéfinie vers « DefaultController »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x36) : référence indéfinie vers « DefaultController »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.startup+0x38) : référence indéfinie vers « UMLRTController::join() »
/usr/bin/avr-ld : /tmp/TopMainLoc.ino.elf.5OJWr8.ltrans0.ltrans.o : dans la fonction « _GLOBAL__sub_I_main » :
/home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:38 : référence indéfinie vers « UMLRTSignalElement::UMLRTSignalElement() »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:38 : référence indéfinie vers « UMLRTSignalElementPool::UMLRTSignalElementPool(UMLRTSignalElement*, unsigned int, unsigned int) »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:12 : référence indéfinie vers « UMLRTSignal::UMLRTSignal() »
/usr/bin/avr-ld : /tmp/TopMainLoc.ino.elf.5OJWr8.ltrans0.ltrans.o : dans la fonction « _GLOBAL__sub_I_main » :
/home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/build/sketch/umlrts/include/umlrtmessage.hh:(.text.startup+0xc4) : référence indéfinie vers « UMLRTMessagePool::UMLRTMessagePool(UMLRTMessage*, unsigned int, unsigned int) »
/usr/bin/avr-ld : /tmp/TopMainLoc.ino.elf.5OJWr8.ltrans0.ltrans.o : dans la fonction « _GLOBAL__sub_D_main » :
/home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x4) : référence indéfinie vers « vtable for UMLRTMessagePool »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x6) : référence indéfinie vers « vtable for UMLRTMessagePool »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x14) : référence indéfinie vers « UMLRTPool::~UMLRTPool() »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x22) : référence indéfinie vers « UMLRTSignal::~UMLRTSignal() »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x2e) : référence indéfinie vers « vtable for UMLRTSignalElementPool »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x30) : référence indéfinie vers « vtable for UMLRTSignalElementPool »
/usr/bin/avr-ld : /home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:(.text.exit+0x3e) : référence indéfinie vers « UMLRTPool::~UMLRTPool() »
/usr/bin/avr-ld : /tmp/TopMainLoc.ino.elf.5OJWr8.ltrans0.ltrans.o : dans la fonction « _GLOBAL__sub_I_main » :
/home/breizh/Documents/Cours/stage/Sujet/TopMainLoc/TopMainLoc.ino:38 : référence indéfinie vers « UMLRTMutex::~UMLRTMutex() »
collect2: error: ld returned 1 exit status
make: *** [Makefile:42 : main] Erreur 1

Merci d’avance !

Sinon l’une des possibilité serais d’inculde toute les fonction arduino mais la aussi je galère. J’ai fait #include <Arduino.h> en compilant avec

ARDUINO=/usr/share/arduino
SOURCE=TopMainLoc.ino Controller.cc OnOff.cc Top.cc TopControllers.cc interact.cc

TopMainLoc: $(SOURCE)
	avr-g++ -I$(ARDUINO)/hardware/archlinux-arduino/avr/cores/arduino -I$(ARDUINO)/hardware/archlinux-arduino/avr/variants/standard -mmcu=atmega328p -o $@ $^

ici c’est les constantes et fonctions de base (digitalWrite, HIGH, LOW, pinMode) qui ne sont pas définie.