2011-11-27 3 views
0

Atrollic Studio를 사용하고 있습니다 (Eclipse에도 문제가 있습니다). i2cIO'.This 프로젝트는 ARM 툴 체인으로 컴파일 할 필요가있다`로 정의되지 않은 참조 :extern int stm32에 대한 정의되지 않은 참조

.H 파일

extern int i2cInitIO(uint channel, uint hz); 
extern int i2cIO(uint device, byte *put, uint putlen, byte *get, uint getlen); 

.c 파일

#include "tollosI2C.h" 
int i2cGetReg(uint device, byte reg, byte *get) { 
    // write one byte address then read 1 byte data 

    return i2cIO(device, &reg, 1, get, 1); 
    } // i2cGetReg 

나는 문제가있다. StM32F103VET6 - 고밀도 장치. ST-Link를 사용합니다.

UPD : 내 .H 파일 - http://pastebin.com/52ftBxR9

및 다. 파일 - http://pastebin.com/CcjpVZUP

컴파일러 호출 명령 - 중괄호가없는 "gcc".

컴파일러 호출 인수 - "-E -P -v -dD $ {plugin_state_location} /specs.c"중괄호를 사용하지 않습니다.

+0

플랫폼? 링커 명령 줄? 링커 설정? – moshbear

+1

당신은 i2cIO (...)에 대한 정의를 제공 했습니까? 아니면 포함 된 라이브러리와 링크하는 것을 잊어 버리셨습니까? – xmoex

+0

참조하시기 바랍니다. – SevenDays

답변

0

좋아, 환경은 Atollic (맞춤법 오류)라고하지만 헤더 파일 이름에서 나는 Mike Cowlishaw의 Tollos 관리자를 사용하고 있다고 결론을 내립니다. GCC에 대한 -E 옵션을 사용하면 사전 처리 된 출력 만 생성되기 때문에 컴파일 옵션이 올바르지 않을 수 있습니다. 단,보고하는 오류는 링커 오류입니다.

더 많은 정보가 없으면 i2cIO 구현이 포함 된 라이브러리가 누락되었다고 가정합니다. 링커 명령 행에 대한 옵션이없는 것 같습니다.

Tollos에서 직접 지원하지 않는 프로세서 변형을 사용하고있는 것 같기 때문에 프로세서에 Tollos를 설치하려고합니다. makefile cq를 확인하십시오. Atollic 프로젝트 설정에서 올바른 라이브러리를 포함합니다. 그리고 적절하다면 -E 옵션을 -c으로 대체하십시오.

관련 문제