Référence indéfinie et UML-RT

Bonjour,

Voici mon problème, j'essaie de porter du code généré via UML-RT sous Arduino. J'utilise Papyrus-RT pour générer du code C++ puis tenter de téléverser sur une Arduino Uno.
Le code C++ a été testé.

J'ai déjà rencontré certains petits soucis mineur comme le changement d’extension pour le main (.cpp devient .ino) ou que le dossier doit porter le même nom que le main.

UML-RT utilise une grosse library télécharger au moment du téléchargement de Papyrus-RT. Cependant, lors de la compilation sous Arduino, j'ai des références indéfinie vers cette fameuse library.

Pour include la library j'ai repris les include du code généré à savoir #include "umlrtmain.hh" et l'ai modifié tel que#include "umlrts/include/umlrtmain.hh".

Mon dossier est disposé comme suit :

.
├── Controller.cc
├── Controller.hh
├── Makefile
├── OnOff.cc
├── OnOff.hh
├── Top.cc
├── Top.hh
├── TopControllers.cc
├── TopControllers.hh
├── TopMain.ino
├── interact.cc
├── interact.hh
└── umlrts
    ├── CMakeLists.txt
    ├── Makefile
    ├── build
    │   ├── buildenv.cmake
    │   ├── buildtools
    │   │   ├── 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
    │   └── linux.x86-gcc-4.6.3
    │       └── librts.a
    ├── obj
    │   └── 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

35 directories, 188 files

Je bloque dessus depuis quelques jours et l'une des solutions que j'envisage est de compiler et téléversé à la main sans l'IDE mais cela risque d'être long et fastidieux.

Problème trouvé !
La lib est compilé avec gcc pour x86 donc il faut que je la recompile pour mon arduino ^^

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.