3. 매크로(Macro) 와 확장자(Suffix) 규칙 3.1 매크로란 무엇인가? (What is Macro) 앞에서 매크로에 대해서 대충 언급을 했다. 프로그램을 짜본 사람이나 로터스, 한글, 엑셀 등의 모든 패키지에서 매크로라는 것을 사용하게 된다. 은연중에 매크로의 정의는 대충 짐작하고 있을 것이다. 이미 알고 있는바와 같이 매크로는 특정한 코드를 간단하게 표현한 것에 지나지 않는다. Makefile에서 사용되는 매크로는 비교적 그 사용법이 간단하기 때문에 금방 익혀서 사용할 정도가 된다. 매크로의 정의는 프로그램을 작성할 때 변수를 지정하는 것처럼 하면 된다. 그리고, 매크로를 사용하기 위해서는 $(..)을 이용하면 된다. 아래는 매크로의 간단한 예제이다. => 참고: 매크로의 사용에서 ${..}..
2. 간단한 Makefile 2.1 Makefile 의 내부 구조 Makefile은 기본적으로 아래와 같이 목표(target), 의존 관계(dependency), 명령(command)의 세개로 이루어진 기분적인 규칙(rule)들이 계속적으로 나열되어 있다고 봐도 무방하다. make가 지능적으로 파일을 갱신하는 것도 모두 이 간단한 규칙에 의하기 때문이다. target ... : dependency ... command ... ... 여기서 목표(target) 부분은 명령(command)이 수행이 되어서 나온 결과 파일을 지정한다. 당연히 목적 파일(object file)이나 실행 파일이 될 것이다. 명령(command)부분에 정의된 명령들은 의존 관계(depenency)부분에 정의된 파일의 내용이 바뀌었..
GNU Make 강좌 임대영 RAXIS@hitel.netv1.0, 1997년 8월 28일 이 글에서는 컴파일 과정과 같이 반복되는 작업을 효과적으로 처리하는 GNU-Make에 대해서 설명한다. http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html 1. make (만든다 ?) 1.1 make 유틸리티 영어 사전에서 make란 뜻은 누구나 알듯이 '만들다'라는 뜻의 동사이다. 그럼 make유틸리티는 왜 이름이 make인지 알 필요가 있을 것 같다. man으로 찾아보면 make에 대해 다음과 같이 설명하고 있다. make - GNU make utility to maintain groups of programs The purpose of the make uti..
3. make 강좌 3.1 머릿말 소스 한두 개로 이루어진 C/C++ 언어 교양과목 과제물을 제출하는 것이 아니라면 약간만 프로젝트가 커져도 소스는 감당할 수 없을 정도로 불어나게 되고 그것을 일일이 gcc 명령행 방식으로 처리한다는 것은 상당히 곤역스러운 일입니다. 그래서 하나의 프로젝트를 효율적으로 관리하고 일관성있게 관리하기 위하여 Makefile 이라는 형식을 사용하고 make 라는 유틸리티를 사용합니다. 여러분이 리눅스에서 소스 형태로 되어 있는 것을 가져와서 컴파일하게 되면 보통 마지막에는 make 라는 명령, 또는 make 이런 식으로 치게 됩니다. make 라는 유틸리티는 보통 현재 디렉토리에 Makefile 또는 makefile 이라는 일정한 규칙을 준수하여 만든 화일의 내용을 읽어서 목..
2. gcc 강좌 2.1 gcc 에 대한 기본 이해 명령행 상태에서 다음과 같이 입력해봅시다. 여러분이 사용하같고 있는 gcc 버전은 알아두고 시작하셔야겠죠? [yong@redyong yong]$ gcc -v Reading specs from /usr/lib/gcc-lib/i386-linux/2.7.2.1/specs gcc version 2.7.2.1 [yong@redyong yong]$ gcc -v 이라고 입력하니까 ``Reading specs from..'' 이라같고 말하면서 그 결과값을 ``gcc version 2.7.2.1''이라고 말해주고 있습니다. 자, 어디서 gcc 에 대한 정보를 읽어오는지 봅시다. /usr/lib/gcc-lib/i386-linux/2.7.2.1/specs gcc 를 여러분..
1. 유닉스에서의 파일 유닉스에서의 파일이 가지는 의미는 타 OS들과는 다른 독특한 의미를 지닌다. "유닉스 시스템에서는 모든것이 파일로 돌아간다" 란 말이있다. 장치나 혹은 네트웍통신을 위한 소켓,또한 파이프, FIFO등을 다룰때도 파일개념이(실지로 파일이다.)적용되기 때문이다. 그만큼 파일이 중요하기 때문에 우리는 가장 처음 LOW LEVEL(저수준) 파일입 출력을 보겠다. 2. 왜 LOW LEVEL File IO 인가? 일반적으로 C프로그래밍을 하면서 printf()나 scanf()등의 입축력 함수들을 많이 다뤄봤을것이다(이들을 표준 라이브러리라 한다). 하지만 우리가 여기서 습득할 함수들은 일명 System Call 함수 즉, 커널에서 제공해주는 저수준의 함수이다. 이말은 그만큼 더 커널,시스템에..
동적으로 major number를 할당하고 device node를 생성하는 script~ #!/bin/sh module="scull" device="scull" mode="664" # 스크립트로 전달한 모든 argument를 가지고 insmod를 호출한다. /sbin/insmod -f ./$module.o $* || exit 1 # 기존에 존재하던 node를 제거한다. rm -f /dev/${device}[0-3] # /proc/devices 파일로 부터 major number를 읽어온다. major=`awk "\\$2==\*$module\" {print \\$1}" /proc/devices` # sed를 사용한 예제. # major=`sed -ne "/$module/s/ *\(.*\) *$module/..
- Total
- Today
- Yesterday
- driver
- 리눅스
- MFC
- 음악
- C++
- Quiz
- Troubleshooting
- gcc
- jni강좌
- algorithm
- 안드로이드
- Cloud
- NDK
- C
- Visual C++
- jni
- winapi
- linux
- Python
- AWS
- android
- 프로그래밍
- java
- db
- database
- kering
- 드라이버
- API
- it
- source
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |