2012-01-18 4 views
1

Arduino 프로젝트에서 브레드 보드에 Arduino Mega2560 및 독립형 ATmega 328P DIP 칩을 컴파일하고 다운로드하기위한 구성을 빌드했습니다. Hello 프로그램과 같은 장치 독립 코드의 경우 최소한 두 구성이 각각의 장치에서 컴파일, 다운로드 및 실행됩니다. 그러나 대부분의 f/ex, blinky 프로그램에는 조건부 장치 종속 코드가 필요합니다. 나는 컴파일러 명령 행에 추가 될 구성 당 (프로젝트 속성> C/C++ 빌드> AVR 컴파일러 (AVR C++ 컴파일러)> 심볼)의 심볼을 만들고 정의 할 수 있습니다.Eclipse : 컴파일 타임에 빌드 - 구성 변수를 사용하는 방법은 무엇입니까?

그러나 IDE의 어느 곳에서나 각 구성에 대해 선택한 부분과 기타 선택 사항은 (프로젝트 속성> C/C++ 빌드> 환경)에서 환경 변수에 지정되어 있으며 일부는 컴파일러 명령에 전달됩니다 -line 옵션은 -D 옵션이 아닙니다. 나는 1) 자동으로 만들어지기 때문에 기존의 것들을 사용하고 싶다; 2) 나는 컴파일러 중 하나에 대해 그 중 하나를 다르게 입력하지 않을 것이다. 3) 동일한 규칙에 따라 다른 작가가 나에게, 다른 프로젝트에서는 코드를 더 이식성있게 만들 수 있습니다.

#defines로 컴파일러에 전달하는 방법이 있습니까? 생성하는 해결 방법 I 작성한 사전 빌드 스크립트로

:


편집

(이클립스 인디고, CrossPack-AVR-20100115, & 맥 OS 10.6.8)

printenv | awk 'BEGIN{print "/*** AUTO-GENERATED FILE -- DO NOT EDIT. ***/\n";} {sub(/^/, "#define "); sub(/=/, " "); print; }' >${CWD}/../src/buildtime-environment.h 



: 헤더 파일은 빌드 타임 환경 변수를 #define한다합니다

그것은 두 가지주의 사항과 충분히 잘 작동합니다

  1. 그것은 깨지기 쉬운 - 그것은 내 프로젝트 디렉토리 구조의 "특별한 지식"을 가지고있다.
  2. 매크로 편집기에서 해당 매크로 중 하나를 가리키면 매크로 확장 도구 팁에 매크로의 오래된 값이 표시 될 수 있으므로이를 잊어 버렸을 때 유령을 쫓아 낼 수 있습니다. 팁.

(해결책을 찾는 것을 포기하지 않는 한 /까지이 의견을 남겨 둘 것입니다).

답변

0

나는 다른 어떤 방법 으로든 어떤 방식 으로든 어떤 언급도 발견하지 못했습니다. 그래서 존재하는 경우 그것을 소스 디렉토리에서 스크립트를 찾아 실행하는 내 빌드 전 단계를 일반화 한 : 많은 것을 할 수 있고 쉽게 프로젝트별로 사용자 정의됩니다

if [ -e ../src/avr-prebuild ]; then ../src/avr-prebuild;fi 

. 그것은 나의 코멘트에 쓴 단문 중 하나를 언급하지 않는다. 그것은 내 디렉토리 구조가 끔찍하지 않다는 것을 알기 때문에 일관성있게 유지하도록 장려합니다. 일식 내에서 도구 팁이 최신 상태로 유지되지 않는다는 사실은 좀 더 심각하지만 나는 그 도구와 함께 살 수 있습니다. 내가 몇 번 더 속고 난 후에 나는 아마 기억할 것이다!

+0

이것은 내가 지금까지 생각 해낸 것 중 최고입니다. 나는 아직도 다른 제안에 열려있다. – JRobert

0

이 질문에 대한 답변을 확신 할 수 없지만 (이전 질문이었습니다) 실행 구성의 환경 탭을 살펴 보았습니까? 기존 변수를 기반으로 새 환경 변수를 추가 할 수 있습니다.예를 들어, 아래 이미지에서 "sb"라는 이름의 문자열 대체 변수가 있는데,이 변수에 대해 컴파일러가 Run 구성의 환경 탭에 추가하여 알릴 수 있습니다. 그런 다음 내 코드 내에서 getenv ("sb_scope")를 사용하여이 변수의 값을 얻을 수있었습니다. 또한 sb_scope를 컴파일러 빌드 프로세스에서 사용할 수있게합니다. 일반적으로이 영역의 목적은 호스트 환경에서 사용할 수있는 변수를 Eclipse로 작성하는 것입니다.

[뻔뻔스러운 플러그] 내 Pluralsight 코스 Eclipse Guided Tour Part 2의 모듈 3 "Eclipse 변수"의 "Demo : String Substitution Variables"클립에 대한 완전한 데모가 있습니다. [/ 뻔뻔스러운 플러그]

screen shot of adding new environment variable

관련 문제