2014-01-22 3 views
0

내 폴더 구조가 같은 것을 말할 수 있습니다 컴파일 시간 동안 폴더를 선택하기 위해 "C"프로젝트의 빌드 환경을 만들기 ..동적으로

+ - 응용 프로그램
|
+ - MICRO_CONTROLLER_1
|
+ - MICRO_CONTROLLER_2
|
+ - MICRO_CONTROLLER_3

와 나는, 유사 경우 #DEFINE의 SELECT_MICRO == MICRO_CONTROLLER_2을 SELECT_MICRO == MICRO_CONTROLLER_1, 다음 내 프로젝트가 MICRO_CONTROLLER_1에서 드라이버 파일과 응용 프로그램을 구축해야를 #define한다로 설정 컴파일 스위치 (SELECT_MICRO)가 그런 다음 응용 프로그램은 MICRO_CONTROLLER_2에 드라이버 파일이있는 응용 프로그램을 빌드해야합니다.

위의 템플릿을 얻으려면 알려주십시오.

답변

0

일반적으로 define 사전 처리기 정의에서 전 처리기에 예를 들어 MICRO_CONTROLLER_1 코드 블록 만 포함시키고 나머지는 무시하도록 지시합니다. 다음과 같은

뭔가 충분합니다 :

#if defined(MICRO_CONTROLLER_1) 
// Block of code that is only available to MICRO_CONTROLLER_1 
#elif defined(MICRO_CONTROLLER_2) 
// ... 
// All other microcontrollers you are supporting would follow this structure. 
#endif 

는 그런 다음 define MICRO_CONTROLLER_1해야합니다. 개발을 위해 IDE를 사용하는 경우, 일반적으로 전처리 지시문을위한 프로젝트 옵션이 있습니다. 여기가 define MICRO_CONTROLLER_1입니다. 그런 다음 대상이되는 각각의 마이크로 컨트롤러마다 하나씩 다른 "구성"을 만들 수 있습니다.

0

디렉토리에 파일 만 포함되어있는 경우에만 작동합니다. #define은 전처리 지시어입니다. 디렉토리에 소스 파일이있는 경우, 프리 프로세서 계층이 아닌 빌드 시스템 계층에서이를 해결해야합니다.

당신은 당신이 구축하고 실행 파일의 경로를 제공 할 폴더의 특정 경로를 수출 단지 #include SELECT_MICRO # "Interface.h"

1

, 그냥 파일을 포함 할 것 수 있습니다 것입니다 가정. 추가 정보를 얻을 수 있습니다. 이 스레드에서.

How I could add dir to $PATH in Makefile?

또는 단순히 빌드 다른하고 -f는 특정 메이크 파일을 실행할 수 있도록 사용하는 다른 메이크 파일을 유지한다.

마지막으로 수행하기를 바랍니다.