목적 : 환경변수는 프로그램이 실행되는 동안에 필요한 매개변수를 전달하는 목적으로 사용된다.
전체 진행 과정

|
1
|
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
|
cs |
환경변수는 프로그램이 실행되는 동안에 필요한 매개변수를 전달하는 목적으로 사용된다.
위의 명령에서는 ARCH와 CROSS_COMPILE 두가지의 환경변수를 선언한다.
ARCH=arm, CROSS_COMPILE=arm-linux-gnueabihf-라고 정의한다.
이런 방식의 환경변수 선언은 1회에 한정하여 반영됩니다. 즉, 한번의 make동작에서만 반영된다.
쉘의 창이 열려있는 동안에 지속적으로 반영하려면 아래와 같이 입력한다.
|
1
2
3
|
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make bcm2709_defconfig
|
cs |
위의 명령에서는 export를 사용하여 쉘 자체에 기억되도록 선언하였기 때문에 환경변수의 지정 없이 사용이 가능하다.
이미 선언된 환경변수의 목록을 확인 하려면 env명령을 수행한다.
echo $ARCH # 현재 환경 변수 ARCH의 값을 출력 (ARCH 변수의 값이 무엇인지 화면에 표시) unset ARCH # ARCH라는 환경 변수를 제거 (환경 변수 ARCH를 삭제하여 이후 $ARCH는 빈 값이 됨)
사용 코드
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <stdio.h> // 표준 입출력 함수 (printf 등) 사용을 위한 헤더
#include <stdlib.h> // getenv 함수 사용을 위한 헤더
int main() {
// ARCH라는 환경 변수의 값을 가져옴
// arch가 NULL이면 해당 환경 변수가 설정되지 않은 것
const char* arch = getenv("ARCH");
if (arch) // arch가 NULL이 아닐 경우 (환경 변수 ARCH가 존재)
printf("Architecture (from env): %s\n", arch); // ARCH 값 출력
else // arch가 NULL일 경우 (환경 변수 ARCH가 존재하지 않음)
printf("ARCH environment variable is not set.\n"); // ARCH가 없다는 메시지 출력
return 0; // 프로그램 정상 종료
}
|
cs |
동작 확인
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
./params
// params 프로그램 실행
// ARCH 환경 변수가 설정되지 않았기 때문에
ARCH environment variable is not set.
// 출력된다.
export ARCH=hello
// 현재 셸의 환경 변수 ARCH를 hello로 설정된다.
// 이 설정은 현재 셸과 이 셸에서 실행되는 모든 하위 프로세스(예: ./params)에 적용된다.
ARCH=haha ./params
// ARCH를 haha로 지정한 상태로 params를 실행 (임시 설정, 해당 명령에서만 유효)
// params가 읽은 ARCH 값은 haha
Architecture (from env): haha
// 이 ARCH=haha 설정은 ./params 실행에만 적용되고 셸의 ARCH=hello에는 영향을 주지 않는다.
./params
// 다시 params 실행된다. (이제는 export한 ARCH=hello 값이 적용됨)
Architecture (from env): hello
// 출력을 확인할 수 있다.
|
cs |
동작 결과

'ARM_core 기반 리눅스 BSP 개발 > Raspberry_PI Kernel build' 카테고리의 다른 글
| [Raspberry_PI]_SDcard_수동Mount (0) | 2025.06.18 |
|---|---|
| [Raspberry_PI]_Linker_Script (0) | 2025.06.17 |
| [Raspberry_PI]_time_명령 (0) | 2025.06.17 |
| [Raspberry_PI]_LED_BLINK (0) | 2025.06.17 |
| [Raspberry_PI]_간단 정리 (0) | 2025.06.17 |