2013-09-01 6 views
-1
여기

오류입니다 'ASM'또는 '__attribute__'하기 전에 '': 여기 오류 : 예상 '=', ',',; FUNCTION_NAME

msp430-gcc -mmcu=msp430g2553 -Os -c -o gpio_test.o gpio_test.c 
In file included from msp430_lib.h:9:0, 
       from gpio_test.c:4: 
gpio_api.h:20:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘gpio_init’ 
gpio_api.h:27:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘gpio_ioctl_pull_en’ 
gpio_api.h:35:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘gpio_write’ 
make: *** [gpio_test.o] Error 1 

오류가에서 오는 헤더 파일이 그것은 간단한데

/* gpio_api.h - General Purpose Input/Output API 
*/ 

#ifndef MSP_GPIO_API_H 
#define MSP_GPIO_API_H 

#include <msp430g2553.h> 

#define INPUT 0 
#define OUTPUT 1 
#define DOWN 0 
#define UP  1 

bool gpio_init(int port, int pin, int direction); 

bool gpio_ioctl_pull_en(int port, int pin, int direction); 

bool gpio_write(int port, int pin, int value); 

int gpio_read (int port, int pin); 

#endif 

, 아직 내 문제가 무엇인지 알아낼 수 없습니다 : (나는 그것을 단축 파일에서 모든 주석을 제거하기 때문에 줄 번호가 일치하지 않습니다).

+1

그래서 ...이 헤더에는 C++이 필요합니까? – WhozCraig

+0

나는 그렇게 생각하지 않는다. 그러나 그것은 실제 가능성이다. 동일한 make 파일 (변경된 객체 이름 만)을 사용하여 해당 파일을 포함하는 코드를 컴파일했습니다. – tylerjw

+0

줄 번호 (20, 27, 35)가 컴파일러에서 얻은 가장 유용한 정보이기 때문에이 경우 주석을 제거하는 것이 좋지 않습니다. 앞으로는보고 된 행과 열에있는 것이 무엇이든간에 어쨌든 깨뜨린다고 가정해야합니다. – David

답변

13

프로그램에 <stdbool.h>을 포함해야합니다. bool은 실제로는 stdbool.h 헤더 파일에 정의 된 매크로입니다.

+4

OP 오류 메시지가 좀 더 ... 설명 적이기도합니다. – Gauthier