2013-06-23 1 views
1

그래서 BCM2835을 설치했지만 "gcc -c main.c"를 사용하여 .c 파일을 컴파일하려고 할 때 다음과 같은 오류가 발생합니다. 나는 리눅스 btw를 컴파일하는 방법에 대해 전혀 모르겠다. 그냥 인터넷상의 내용을 따르라. BCM2835가 설치되었지만 정의되지 않은 참조를 제공함

/tmp/ccSVwHkt.o: In function `main': 
main.c:(.text+0x14): undefined reference to `bcm2835_init' 
main.c:(.text+0x3c): undefined reference to `bcm2835_gpio_fsel' 
main.c:(.text+0x48): undefined reference to `bcm2835_gpio_write' 
main.c:(.text+0x50): undefined reference to `bcm2835_delay' 
main.c:(.text+0x5c): undefined reference to `bcm2835_gpio_write' 
main.c:(.text+0x64): undefined reference to `bcm2835_delay' 
collect2: ld returned 1 exit status 

은 (구글 코드에서 복사)을 main.c의 내용

/* 
* main.c 
* 
* Created on: 23-jun.-2013 
*  Author: Andreas Backx 
*/ 


#include <bcm2835.h> 
// Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17) 
#define PIN RPI_GPIO_P1_11 
int main(int argc, char **argv) 
{ 
    // If you call this, it will not actually access the GPIO 
    // Use for testing 
// bcm2835_set_debug(1); 
    if (!bcm2835_init()) 
     return 1; 
    // Set the pin to be an output 
    bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); 
    // Blink 
    while (1) 
    { 
     // Turn it on 
     bcm2835_gpio_write(PIN, HIGH); 

     // wait a bit 
     bcm2835_delay(500); 

     // turn it off 
     bcm2835_gpio_write(PIN, LOW); 

     // wait a bit 
     bcm2835_delay(500); 
    } 
    bcm2835_close(); 
    return 0; 
} 
+0

'gcc -c main.c "는 의미가 없습니다. 당신이 사용하고있는 진정한 명령은 무엇입니까? –

+0

그건 내가 사용하고있는 실제 명령입니다 ... –

+0

글쎄, 그게 아마도 당신 문제예요. 나는 대답을 쓸거야. –

답변

7

gcc -c main main.c 이해 당신이 얻고있는 출력을 제공하지 않습니다이다. 즉, 당신이 무슨 일을하는지 정말 경우 말했다, 당신은 그것을 변경해야

gcc -o main main.c 

당신은 가능성이 여전히 링커에서 "정의되지 않은 기호"오류를 얻을 것이다, 당신은 어떤 라이브러리와 연결하지 않는 때문에 그 기호를 정의합니다. gcc 모르는 어디 선가 라이브러리를 설치 한 경우

gcc -o main main.c -lbcm2835 

당신은 또한 -L 플래그를 추가해야 할 수도 있습니다 사이트에있는 예제의 빠른 검사는 당신은 당신이 bcm2835 라이브러리와 링크 할 필요가 쇼를 연결 그것을 찾으십시오.

관련 문제