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 !