includes in Cube IDE

OP #7435099
Lesenswert?
• ▲
▼

Hey Leute,

Ich arbeite normalerweise mit MPlap von Microchip und erst seit kurzem mit der CubeIDE von ST. Und habe mit der CubeMX ein Projekt erstellt und mit touchgfx auch einen Display am Laufen. Jetzt wollte ich auch meine Drehgeber, LED, usw. einbinden und habe natürlich sorce und header Datei erstellt (im selben Verzeichnis wie main.c und .h). Ich hatte auch ein eigenes Verzeichnis mal erstellt, aber da komme ich zum selben Ergebnis. Ich hatte da auch in Paths and Symbols die Verzeichnisse eingebunden, aber irgendwas mache ich noch falsch. Mein code ist jetzt nur zu Versuchszwecken in der Model.cpp, die Fehler kommen, auch wenn ich es in die Main schreibe.

1
arm-none-eabi-g++ -o "Exxcellence STM32U599 Rev1.elf" @"objects.list"  -l:libtouchgfx-float-abi-hard.a -mcpu=cortex-m33 -T"C:\Users\tola5\Desktop\Exxcellence\STM32U599ZJTXQ_FLASH.ld" --specs=nosys.specs -Wl,-Map="Exxcellence STM32U599 Rev1.map" -Wl,--gc-sections -static -L"C:\Users\tola5\Desktop\Exxcellence\Middlewares\ST\touchgfx\lib\core\cortex_m33\gcc" --specs=nano.specs -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group
2
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: ./TouchGFX/gui/src/model/Model.o:C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Inc/test.h:49: multiple definition of `matrix'; ./Core/Src/test.o:C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Inc/test.h:49: first defined here
3
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: ./Core/Src/test.o: in function `encoder_volume':
4
C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Src/test.c:117: undefined reference to `INC_RAST_volume'
5
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Src/test.c:117: undefined reference to `direction_A_volume'
6
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Src/test.c:117: undefined reference to `direction_B_volume'
7
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Src/test.c:117: undefined reference to `encoder_count_volume'
8
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: C:/Users/tola5/Desktop/Exxcellence/Debug/../Core/Src/test.c:117: undefined reference to `change_volume'
9
c:\st\stm32cubeide_1.12.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: ./TouchGFX/gui/src/model/Model.o: in function `Model::tick()':
10
C:/Users/tola5/Desktop/Exxcellence/Debug/../TouchGFX/gui/src/model/Model.cpp:20: undefined reference to `encoder_count_volume'
11
collect2.exe: error: ld returned 1 exit status
12
make: *** [makefile:96: Exxcellence STM32U599 Rev1.elf] Error 1
13
"make -j16 all" terminated with exit code 2. Build might be incomplete.
Angehängte Dateien:
#7435152
Lesenswert?
• ▲
▼

Da kommt er wieder, der alte Lehrspruch:

Variablen und Code tut man nicht in eine *.h Datei! Nein das tutet man nicht! Nein das gehört sich nicht! Weil man damit irgendwann auf die Schnauze fällt, wie hier passiert.

Mit C kann man ja vieles (fast alles machen) aber man muss eben auch mit den Konsequenzen seiner Taten zurechtkommen.

Nein, Variablen und Code tut man nicht in eine *.h Datei!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.