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



Teraz jest 23 cze 2026, o 04:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 31 gru 2014, o 17:22 
Offline
Użytkownik

Dołączył(a): 05 gru 2013
Posty: 246
Pomógł: 0

W pliku nagłówkowym common h mam następującą definicję typu:

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


Typ ten chcę zastosować jako jeden z argumentów funkcji w innym pliku komendy_at.h, tak więc dołączam tam #include "../common.h". Niestety, pomimo tego przy kompilacji dostaję następujący komunikat:

Kod:
unknown type name 'iface_t'


Ktoś wie o co może mu chodzić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2014, o 17:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 lis 2013
Posty: 120
Lokalizacja: Koło
Pomógł: 6

Na pewno dobrze includujesz ścieżkę do pliku common.h? Jeśli tak to eclipse powinien podpowiedzieć Ci poprzez naciśnięcie ctrl+spacja typ iface_t. Najlepiej to pokaż drzewko projektu :)

_________________
Kompleksowa realizacja ogrodów



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2014, o 18:05 
Offline
Użytkownik

Dołączył(a): 05 gru 2013
Posty: 246
Pomógł: 0

pbmaster napisał(a):
Na pewno dobrze includujesz ścieżkę do pliku common.h?


Plik common.h znajduje się w głównym katalogu projektu. Natomiast komendy_at.h jest umieszczony w katalogu AT, który znajduje się wewnątrz głównego katalogu.

Include ma postać:

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


Nie wiem co może być nie tak...

Cytuj:
Jeśli tak to eclipse powinien podpowiedzieć Ci poprzez naciśnięcie ctrl+spacja typ iface_t. Najlepiej to pokaż drzewko projektu :)


Nie używam Eclipse, tylko Atmel Studio.

Nie, żeby to był jakiś wielki problem - najwyżej zastosuję zmienną uint8_t i odpowiednie nazwy przygotuję za pomocą dyrektyw preprocesora. Tyle tylko, że zastanawia mnie dlaczego ta definicja nie jest widoczna. W innym projekcie, pisanym w C++ nie było takiego problemu. Tam oczywiście nie musiałem stosować typedef wraz z enumem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2014, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Plik common.h tworzyłeś w AS czy przekopiowałeś z
innego miejsca do katalogu projektu ?.

Bo jeśli był przekopiowany (kopiuj/wstaw) to musisz go zaimportować
do projektu w Atmel Studio



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2014, o 19:40 
Offline
Użytkownik

Dołączył(a): 05 gru 2013
Posty: 246
Pomógł: 0

Zaba napisał(a):
Plik common.h tworzyłeś w AS czy przekopiowałeś z
innego miejsca do katalogu projektu ?.

Bo jeśli był przekopiowany (kopiuj/wstaw) to musisz go zaimportować
do projektu w Atmel Studio


Z tego oczywiście zdaje sobie sprawę. Już nawet nie pamiętam czy ten plik był tworzony, czy importowany. W każdym razie jest widoczny w drzewku folderów Atmel Studio. Poza tym plik zawiera jeszcze parę innych deklaracji (m.in. jednego typu strukturalnego, paru zmiennych extern oraz funkcji, których ciała znajdują się w pliku common.c. Te pozostałe rzeczy działają. Z typedef enum są problemy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2015, o 14:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2014
Posty: 438
Lokalizacja: Zambrów
Pomógł: 22

Atlantis napisał(a):
W pliku nagłówkowym common h mam następującą definicję typu:

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


Typ ten chcę zastosować jako jeden z argumentów funkcji w innym pliku komendy_at.h, tak więc dołączam tam #include "../common.h". Niestety, pomimo tego przy kompilacji dostaję następujący komunikat:

Kod:
unknown type name 'iface_t'


Ktoś wie o co może mu chodzić?

Sprawdziłem twój kod w eclipse. W pliku common.h wstawiłem definicję typu i w funkcji main.c bez problemu był wykrywany i można było na nim operować. Także prawdopodobnie wina musi być w konfiguracji czy plikach projektu w Atmel Studio

_________________
.



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO