Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 mar 2024, o 00:27


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 21 mar 2020, o 17:28 
Offline
Nowy

Dołączył(a): 02 mar 2014
Posty: 3
Pomógł: 0

Witam
Postanowiłem uporządkować swój projekt w związku z tym podzieliłem go na pliki.
I tu pojawił się problem, którym mnie zatrzymał.
Zamieszczam kod przykładowy:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Oraz dwa pliki:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Błędy kompilatora

make: *** [Nano_test.elf] Error 1
Method 'println' could not be resolved
Method 'println' could not be resolved
recipe for target 'Nano_test.elf' failed
undefined reference to `wyslij()'

lub

C:\Users\stasz\eclipse_workspace\Nano_test\build\uno/../../Nano_test.cpp:18: undefined reference to `wyslij()'
collect2.exe: error: ld returned 1 exit status
make: *** [Nano_test.elf] Error 1
makefile:64: recipe for target 'Nano_test.elf' failed

Zastanawiam się jakie magiczne słowo należy dopisać i gdzie, próbowałem różne opcje ale bez rezultatu.
Podobna sytuacja jest z instrukcją np. "sensors.requestTemperatures();" z biblioteki DallasTemperature , w funkcji loop() jest ok, a po przeniesieniu do oddzielnego pliku lipa!
Proszę o pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2020, o 07:06 
Offline
Użytkownik

Dołączył(a): 18 lis 2019
Posty: 31
Zbananowany użytkownik

Pomógł: 1

Arduino jest tak (nie)pomyślane aby na max utrudnić normalną pracę o czym świadczy chociażby brak wsparcia dla debugera, narzędzia niezbędnego do wygodnej i szybkiej pracy. Zostaw to pseudo IDE arduino i użyj AtmelStudio jeśli pracujesz na AVR. Jeśli na STM32 to uzyj CubeIDE.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2020, o 08:46 
Offline
Nowy

Dołączył(a): 02 mar 2014
Posty: 3
Pomógł: 0

Zapomniałem dodać, że używam Eclips-a.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2020, o 15:44 
Offline
Nowy

Dołączył(a): 02 mar 2014
Posty: 3
Pomógł: 0

Problem rozwiązany.
Banalna sprawa, plik źródłowy powinien mieć rozszerzenie .cpp a nie .c ponieważ aplikacje na Arduino piszemy w C++ :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2020, o 11:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2019
Posty: 147
Pomógł: 37

gozziu napisał(a):
plik źródłowy powinien mieć rozszerzenie .cpp a nie .c

Nie. Należy użyć dyrektywy extern "C".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO