728x90
300x250

[C언어] 포인터를 이용한 다중 배열 요소의 출력 - 2 -

이번에는 포인터를 이용한 다중 배열 요소의 출력을 해보도록 하겠습니다.
*(a+0) 형식을 응용한 형태의 꼴로 구현 할 수 있습니다.

a[2][2][2] 의 경우 배열로 어떻게 표현하나요?

int a[2][2][2] = {{{3,3},{3,3},{3,3}},{{a,b},{b,c},{c,a}},}

이런 형태로 구현이 가능하겠죠.

a[1][2] = {{2,2},{3,3}}

이런 다차항의 배열 또한 역시나 수식으로 표현하실 수가 있습니다.

a[i][j]

*(*(a + i) + j)

단, a는 포인터로 연결된 배열 변수

이처럼 다중 포인터 역시나 쉽게 구현이 가능하겠습니다.
아래의 소스코드를 가지고 연습해보시기 바랍니다.

#include <stdio.h>

int main()
{
 
 int a[2][3][2] = {{{10,20},{20,30},{30,40}},{{60,70},{70,80},{90,30}}};
 
 int b[2][3] = {{10,20,30},{20,30,40},};

 int c[5] = {10,20};

 int * nk;

 nk = c;

 /* 주의 : 포인터 변수로 선언 후에 배열 포인터로 지정하여 계산한다.*/

 printf("%d", *(*(*(a+1) + 2) + 0));

}

반응형
728x90
300x250

[C언어] 포인터를 이용한 배열 요소의 출력 - 1 -

배열의 경우에는 포인터와 가장 밀접한 관계(Relation)을 성립하고 있습니다.
결국 이 말은 배열을 포인터로 사용할 수 있다는 뜻이기도 하지요.

이론적인 부분들에 대해서는 별도로 교제를 사서 공부하시면 되겠습니다.
그래도 혹시나 하는 마음에 조금 설명을 하고자 합니다.


 p == a == &a[0], p+n == &a[n]
 *p == a[0],
 *(p+n) == a[n]
 p2 = &a[3] == p+3,
 p2+1 == &a[4] == p+4,
 p2+2 == &a[5] == p+5
 *p2 == a[3] == *(p+3)
 




1. 배열 요소로 쉽게 출력하는 방법

Example : a[3]의 값을 포인터 수식으로 표현한다고 가정하고, 다음의 절차를 따르도록 합니다.

[단계 1] : 배열 기호[]를 생략하고, 배열명 a앞으로 빼내면서 *로 바꿉니다.

*a3

[단계 2] : * 뒤에 남은 요소를 (배열명+첨자) 형태로 바꿉니다.

*(a+3)

이게 전부입니다. 참 쉽죠??

#include <Stdio.h>

int main()
{

 int a[5] = {100, 200, 300, 400, 500};

 int *nk;

 nk = a;

 printf("%d", *(nk));

}

반응형
728x90
300x250

[C언어]  포인터 연산

포인터 연산을 편하게 이해하실 수 있는 예제입니다.

#include <stdio.h>

int main()
{

 char *pc, c = 'A';
 int *pi, i = 129;

 /* 포인터 연결 */

 pc = &c;

 pi = &i;
 
 printf("1번 결과------------------\n");

 printf("&C포인터 주소 = %X, *pc포인터 주소 = %X, C 내용 = %d, *PC 내용 = %5c\n", &c, pc, c, *pc);
 printf("&i포인터 주소 = %X, *pi포인터 주소 = %X, i 내용 = %d, *Pi 내용 = %5d\n", &i, pi, i, *pi);

 /* 1번 예제 포인터 값 증가 */
 
 (*pi)++;

 printf("*pi값 증가 : %d, i값 증가 = %d\n", *pi, i);

 /* 2번 예제 포인터 주소 변경 */

 *pc++;

 printf("*pc포인터 주소 변경 : %X, 데이터값 = %d\n", &pc, *pc);

}

 

반응형
728x90
300x250

[C언어] 포인터에 익숙해지는 방법은...

자료형 *변수명1;
자료형 변수명2;

변수명1 = &변수명2;
 

이 정도 형식까지는 쉽게 이해하시는데 더 나아가라고 하면 머리에 한계를 느끼는 부분이 없지않다고 봅니다.

포인터의 경우에는 메모리를 제어해야하는 부분이기에 익숙해지기가 쉽지 않습니다.
물론 포인터에 익숙해지고 싶다면, "백문이불여일타"를 하는 방법도 좋긴하지만 메모리 맵을 직접 작성해보는 것이 좋은 방법이 아닐까 생각합니다.

지금 포인터가 이해가 가지 않으시다면, 임의 그림으로 주소범위를 그려서 낙서장에 적어보도록 하세요...

당장....

반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 포인터를 이용한 배열 요소의 출력 - 1 -  (162) 2009.05.14
[C언어] 포인터 연산  (122) 2009.05.13
[C언어] 포인터 개념의 이해  (134) 2009.05.13
[GNU - C, C++] Dev C++ 5.0 - IDE  (134) 2009.03.30
연산자와 C언어  (128) 2009.03.30
728x90
300x250
[C언어] 포인터 개념의 이해

(별 ****) 어셈블리어 수준에서의 고속 연산과 빠른 처리 성능을 내기 위해서는 무엇보다 메모리에 대한 직접 접근이 필요합니다.
C언어는 데이터가 적재된 메모리 주소를 직접 참조하기 위한 방법으로 포인터(Pointer)를 지원해야합니다. 즉 특정 변수에 정수나 실수, 문자 상수뿐만 아니라 물리적인 메모리 번지도 담아두고 활용할 수 있다는 뜻이기도 하지요.
아래에 포인터의 표준 형식입니다.

data_type * variable_name;

data_type 에는 다음과 같은 종류의 범위가 적용이 됩니다.

int, char, unsigned char, short, short int 등과 같이 일상적으로 사용하는 대부분의 변수들을 사용하실 수가 있습니다.

포인터를 쉽게 이해하실려면 메모리주소를 이해하셔야 합니다.

예) 개똥이네 집주소 1111가 있습니다. 철수와 영희네 집주소는 각각 1112, 1113입니다. 철수네는 CP라는 자료를 가지고 있습니다. 개똥이는 철수네 집의 주소를 사용하고자 합니다. 그래서 *라는 아이를 붙여진 영역을 갖게 되었죠. 여기에서 *라는 녀석은 주소번호를 뜻합니다.
우체국에 가서 '아저씨, 철수네 집이 여행을 가서 그러는데 개똥이네 집에 데이터를 같이써도 되나요'라고 문의를 해서 좋다라고 허락하셨습니다. &라는 주소연산자를 통해 아래와 같이 사용하게 되었습니다.

int *1111, 1112, 1113

1112 = CP;
1113 = 0;

1111 = &1112;

그래서 포인터라는 아이로 철수네는 철수네로 개똥이네는 철수네 데이터를 불러오는 게 성립이 되었습니다.(믿거나 말거나....)

Q1. 실제로 포인터가 대부분의 C 응용프로그램을 제작할 때 필수적으로 쓰인다는데, 과연 어디에 사용이 될까요??

첫번째
I.O라고 불리우는 입축력 하드웨어 장치 드라이버를 만드는 경우를 예를 들어보자면 송수신의 대부분이 메모리를 통해 일어나게 되죠?
흔히 이를 memory-mapped I/O라고 합니다. 이 경우에는 효율적인 메모리 관리가 요하기에 사용히 필수라고 할수 있겠죠...

두번째
수시로 발생하는 많은 양의 데이터를 효과적으로 관리해야 할 프로그램에서는 프로그램이 실행되는 도중(run-time)에 필요한 메모리를 동적으로 할당받아 연결리스트(linked-list) 자료구조를 구성해야 하는 경우가 있다. 이 경우에도 포인터를 사용해야만 보다 빠른 자료의 검색이 가능하고 우수한 성능을 낼 수 있다.

마지막으로...
여러분이 좋아하는 게임을 만드는 경우를 생각해보자...
이 경우에도 게임에 사용되는 각종 배경 이미지와 에니메이션 데이터를 비디오 메모리 공간에 미리 로딩해 두고, 포인터로 직접 접근해야만 끊어짐 없는 부드러운 에니메이션을 표현할 수가 있습니다.

[Note]
자바와 같은 대부분의 프로그래밍 언어는 포인터를 직접적으로 지원하지 않습니다. 즉, 프로그램의 안정성을 위해 개발자가 메모리 주소를 직접 제어하는 것을 막고 있습니다.
반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 포인터 연산  (122) 2009.05.13
[C언어] 포인터에 익숙해지는 방법은...  (136) 2009.05.13
[GNU - C, C++] Dev C++ 5.0 - IDE  (134) 2009.03.30
연산자와 C언어  (128) 2009.03.30
C언어 입문의 시작  (133) 2009.03.20
728x90
300x250

[Linux] GD 라이브러리 설치

(사실 제가 쓰려고 메모해두는 것이기도 합니다)
GD라이브러리 설치 순서는 크게 아래와 같습니다.

1. zlib 설치
2. png 설치
3. jpeg 설치
4. freetype 설치
5. gd 설치

아래에 각각의 라이브러리에 대한 다운로드 자료가 있습니다.
각각 서버에 설치하도록 합니다.


1. 참고 링크

1. zlib 다운로드 : http://www.zlib.net/
(zlib-1.2.3.tar.gz) = 예제에서 사용하고 있는 버전입니다.

 

 

2. png 다운로드 : http://www.libpng.org/pub/png/libpng.html
(libpng-1.2.34.tar.gz) = 예제에서 사용하고 있는 버전입니다.

3. JPEG 다운로드 : http://quox.org/install/graphics/jpeg-6b.html
(jpegsrc.v6b.tar.gz) = 예제에서 사용하고 있는 버전입니다.

4. freetype 다운로드 : http://freetype.sourceforge.net/index2.html
(freetype-2.3.8.tar.gz) = 예제에서 사용하고 있는 버전입니다.

5. GD 다운로드 (gd-2.0) : http://www.libgd.org/Main_Page

-------------------------------------------------------------------

파일 압축 해제

[root@server3 GD-library]# pwd
/root/Desktop/GD-library

- 압축 해제 -
[root@server3 GD-library]# tar xvfz freetype-2.3.8.tar.gz
[root@server3 GD-library]# tar xvfz gd-2.0.36RC1.tar.gz
[root@server3 GD-library]# tar xvfz jpegsrc.v6b.tar.gz
[root@server3 GD-library]# tar xvfz libpng-1.2.34.tar.gz
[root@server3 GD-library]# tar xvfz zlib-1.2.3.tar.gz

- 폴더 이동 : 꼭 이동할 필요는 없지만 소스 설치시 구분하기 쉽게 하기 위해 이동해 준다. -
[root@server3 GD-library]# mv freetype-2.3.8 /usr/local/src
[root@server3 GD-library]# mv gd-2.0.36RC1 /usr/local/src
[root@server3 GD-library]# mv jpeg-6b/ /usr/local/src
[root@server3 GD-library]# mv libpng-1.2.34 /usr/local/src
[root@server3 GD-library]# mv zlib-1.2.3 /usr/local/src

- 설치 폴더 생성 : 꼭 만들어 줄 필요는 없지만 구분하기 쉽게 하기 위해 만들어준다. -
[root@server3 GD-library]# cd /usr/local
[root@server3 local]# pwd
/usr/local
[root@server3 local]# mkdir gd-lib

1. zlib 설치

[root@server3 src]# cd zlib-1.2.3/
[root@server3 zlib-1.2.3]# ./configure --help
usage:
  configure [--shared] [--prefix=PREFIX]  [--exec_prefix=EXPREFIX]
     [--libdir=LIBDIR] [--includedir=INCLUDEDIR]

[root@server3 zlib-1.2.3]# ./configure --shared --prefix=/usr/local/gd-lib/zlib-1.2.3
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.

[root@server3 zlib-1.2.3]# make

- 중략

ln -s libz.so.1.2.3 libz.so
ln -s libz.so.1.2.3 libz.so.1
gcc -fPIC -O3 -DUSE_MMAP -o example example.o -L. libz.so.1.2.3
gcc -fPIC -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -fPIC -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.so.1.2.3

[root@server3 zlib-1.2.3]# make install

- 중략

cp zlib.3 /usr/local/gd-lib/zlib-1.2.3/share/man/man3
chmod 644 /usr/local/gd-lib/zlib-1.2.3/share/man/man3/zlib.3
[root@server3 zlib-1.2.3]#

2. png 설치

[root@server3 src]# cd libpng-1.2.34/
[root@server3 libpng-1.2.34]# ./configure --help
`configure' configures libpng 1.2.34 to adapt to many kinds of systems.

- 중략

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <png-mng-implement@lists.sourceforge.net>.

[root@server3 libpng-1.2.34]# ./configure --prefix=/usr/local/gd-lib/libpng-1.2.34

- 중략

checking if assembler code in pnggccrd.c can be compiled without PNG_NO_MMX_CODE... yes
checking if libraries can be versioned... yes
checking for symbol prefix...
configure: pkgconfig directory is ${libdir}/pkgconfig
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libpng.pc
config.status: creating libpng-config
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

[root@server3 libpng-1.2.34]# make

- 중략

cp libpng-config libpng12-config
cp libpng.pc libpng12.pc
make[1]: Leaving directory `/usr/local/src/libpng-1.2.34'

[root@server3 libpng-1.2.34]# make install

- 중략

make  install-data-hook
make[2]: Entering directory `/usr/local/src/libpng-1.2.34'
cd /usr/local/gd-lib/libpng-1.2.34/include; rm -f png.h pngconf.h
cd /usr/local/gd-lib/libpng-1.2.34/include; ln -s libpng12/png.h png.h
cd /usr/local/gd-lib/libpng-1.2.34/include; ln -s libpng12/pngconf.h pngconf.h
cd /usr/local/gd-lib/libpng-1.2.34/lib/pkgconfig; rm -f libpng.pc
cd /usr/local/gd-lib/libpng-1.2.34/lib/pkgconfig; ln -s libpng12.pc libpng.pc
make[2]: Leaving directory `/usr/local/src/libpng-1.2.34'
make[1]: Leaving directory `/usr/local/src/libpng-1.2.34'
[root@server3 libpng-1.2.34]#

3. jpeg 설치 - http://quox.org/install/graphics/jpeg-6b.html 참고  

[root@server3 src]# cd jpeg-6b/
/usr/local/src/jpeg-6b
[root@server3 jpeg-6b]# ./configure --help

- 중략

Features and packages:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --x-includes=DIR        X include files are in DIR
  --x-libraries=DIR       X library files are in DIR
--enable and --with options recognized:
  --enable-shared         build shared library using GNU libtool
  --enable-static         build static library using GNU libtool
  --enable-maxmem[=N]     enable use of temp files, set max mem usage to N MB

[root@server3 jpeg-6b]# ./configure --prefix=/usr/local/gd-lib/jpeg-6b/ --enable-shared --enable-static

- 중략

checking for objdir... .libs
creating libtool
checking libjpeg version number... 62
creating ./config.status
creating Makefile
creating jconfig.h
jconfig.h is unchanged

[root@server3 jpeg-6b]# make

- 중략

mv -f rdjpgcom.o rdjpgcom.lo
gcc -O2 -I. -c ./rdjpgcom.c >/dev/null 2>&1
./libtool --mode=link gcc  -o rdjpgcom rdjpgcom.lo
gcc -o rdjpgcom rdjpgcom.o
./libtool --mode=compile gcc -O2  -I. -c ./wrjpgcom.c
gcc -O2 -I. -c -fPIC -DPIC ./wrjpgcom.c
mv -f wrjpgcom.o wrjpgcom.lo
gcc -O2 -I. -c ./wrjpgcom.c >/dev/null 2>&1
./libtool --mode=link gcc  -o wrjpgcom wrjpgcom.lo
gcc -o wrjpgcom wrjpgcom.o

[root@server3 jpeg-6b]# strip rdjpgcom wrjpgcom .libs/{cjpeg,djpeg,jpegtran}

-------------------------------------------------------------------
- make 시 에러가 발생하면 아래와 같은 폴더를 생성해 준 다음 make clean 명령어를 해준 후 재 컴파일 해준다.
[root@server3 jpeg-6b]# pwd
/usr/local/gd-lib/jpeg-6b
[root@server3 jpeg-6b]# mkdir include
[root@server3 jpeg-6b]# mkdir bin
[root@server3 jpeg-6b]# mkdir lib
[root@server3 jpeg-6b]# mkdir man
[root@server3 jpeg-6b]# mkdir ./man/man1
-------------------------------------------------------------------

[root@server3 jpeg-6b]# pwd
/usr/local/src/jpeg-6b
[root@server3 jpeg-6b]# make install

- 중략

./libtool --mode=install /usr/bin/install -c cjpeg /usr/local/gd-lib/jpeg-6b//bin/cjpeg
/usr/bin/install -c .libs/cjpeg /usr/local/gd-lib/jpeg-6b//bin/cjpeg
./libtool --mode=install /usr/bin/install -c djpeg /usr/local/gd-lib/jpeg-6b//bin/djpeg
/usr/bin/install -c .libs/djpeg /usr/local/gd-lib/jpeg-6b//bin/djpeg
./libtool --mode=install /usr/bin/install -c jpegtran /usr/local/gd-lib/jpeg-6b//bin/jpegtran
/usr/bin/install -c .libs/jpegtran /usr/local/gd-lib/jpeg-6b//bin/jpegtran
./libtool --mode=install /usr/bin/install -c rdjpgcom /usr/local/gd-lib/jpeg-6b//bin/rdjpgcom
/usr/bin/install -c rdjpgcom /usr/local/gd-lib/jpeg-6b//bin/rdjpgcom
./libtool --mode=install /usr/bin/install -c wrjpgcom /usr/local/gd-lib/jpeg-6b//bin/wrjpgcom
/usr/bin/install -c wrjpgcom /usr/local/gd-lib/jpeg-6b//bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/gd-lib/jpeg-6b//man/man1/cjpeg.1
/usr/bin/install -c -m 644 ./djpeg.1 /usr/local/gd-lib/jpeg-6b//man/man1/djpeg.1
/usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/gd-lib/jpeg-6b//man/man1/jpegtran.1
/usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/gd-lib/jpeg-6b//man/man1/rdjpgcom.1
/usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/gd-lib/jpeg-6b//man/man1/wrjpgcom.1

[root@server3 jpeg-6b]# cp jversion.h /usr/local/gd-lib/jpeg-6b/include/ - 설치폴더의 include 폴더에 파일을 복사해준다.

4. freetype 설치

[root@server3 src]# cd freetype-2.3.8/
[root@server3 freetype-2.3.8]# pwd
/usr/local/src/freetype-2.3.8

[root@server3 freetype-2.3.8]# ./configure --prefix=/usr/local/gd-lib/freetype-2.3.8

FreeType build system -- automatic system detection

- 중략

configure: creating ./config.status
config.status: creating unix-cc.mk
config.status: creating unix-def.mk
config.status: creating freetype-config
config.status: creating freetype2.pc
config.status: creating ftconfig.h
config.status: executing libtool commands
make: `unix'를 위해 할 일이 없습니다

[root@server3 freetype-2.3.8]# make

- 중략

libtool: link: ranlib /usr/local/src/freetype-2.3.8/objs/.libs/libfreetype.a
libtool: link: ( cd "/usr/local/src/freetype-2.3.8/objs/.libs" && rm -f "libfreetype.la" && ln -s "../libfreetype.la" "libfreetype.la" )

[root@server3 freetype-2.3.8]# make install

- 중략

/usr/bin/install -c -m 644 ./builds/unix/ft2unix.h \
          /usr/local/include/ft2build.h
/usr/bin/install -c -m 644 ./builds/unix/ftconfig.h                        \
          /usr/local/include/freetype2/freetype/config/ftconfig.h
/usr/bin/install -c -m 644 /usr/local/src/freetype-2.3.8/objs/ftmodule.h                          \
          /usr/local/include/freetype2/freetype/config/ftmodule.h
/usr/bin/install -c -m 755 ./builds/unix/freetype-config \
          /usr/local/bin/freetype-config
/usr/bin/install -c -m 644 ./builds/unix/freetype2.m4 \
          /usr/local/share/aclocal/freetype2.m4
/usr/bin/install -c -m 644 ./builds/unix/freetype2.pc \
          /usr/local/lib/pkgconfig/freetype2.pc
[root@server3 freetype-2.3.8]#

5. gd 설치

[root@server3 src]# cd gd-2.0.36RC1/
[root@server3 gd-2.0.36RC1]# pwd
/usr/local/src/gd-2.0.36RC1

[root@server3 gd-2.0.36RC1]# ./configure --help
`configure' configures GD 2.0.36 to adapt to many kinds of systems.

- 중략

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <http://bugs.libgd.org>.

[root@server3 gd-2.0.36RC1]# ./configure --prefix=/usr/local/gd-lib/gd-2.0.36RC1 --with-png=/usr/local/gd-lib/libpng-1.2.34 --with-jpeg=/usr/local/gd-lib/jpeg-6b/ --with-freetype=/usr/local/gd-lib/freetype-2.3.8

- 중략

** Configuration summary for gd 2.0.36: - 확인해준다.

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes - 무료 폰트 렌더링 라이브러리
   Support for Fontconfig library:   no
   Support for Xpm library:          no - unix의 이미지 포맷 라이브러리
   Support for pthreads:             yes

configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating config/gdlib-config
config.status: creating test/Makefile
config.status: creating config.h
config.status: executing depfiles commands

[root@server3 gd-2.0.36RC1]# make

- 중략

make[2]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
make[1]: Leaving directory `/usr/local/src/gd-2.0.36RC1'

[root@server3 gd-2.0.36RC1]# make install

- 중략

make[2]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
make[1]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
[root@server3 gd-2.0.36RC1]#

6. php 재컴파일


[root@server3 src]# cd php-5.2.8
[root@server3 php-5.2.8]# pwd
/usr/local/src/php-5.2.8

[root@server3 php-5.2.8]# make clean - 이전 컴파일 정보 삭제
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php libphp5.la modules/* libs/*

[root@server3 php-5.2.8]# ./configure
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/apache/conf \
--with-exec-dir=/usr/local/apache/bin \
--enable-mbstring --with-mcrypt=/usr/local/libmcrypt \
--with-gd=/usr/local/gd-lib/gd-2.0.36RC1 \
--with-jpeg-dir=/usr/local/gd-lib/jpeg-6b \
--with-freetype-dir=/usr/local/gd-lib/freetype-2.3.8 \
--with-png-dir=/usr/local/gd-lib/libpng-1.2.34 \
--with-zlib-dir=/usr/local/gd-lib/zlib-1.2.3 - 녹색 부분만 재컴파일시 추가해준다.

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

[참고사항]

[root@server3 php-5.2.8]# make && make install or make -> make test -> make install 로 하면 좀더 정확하게 확인하며 설치할 수 있습니다.

반응형
728x90
300x250

[GNU - C, C++] Dev C++ 5.0 - IDE

Visual Studio처럼 IDE로서 프로그래밍 공부하시는데 사용하시면 됩니다.

[첨부(Attachment)]
devcpp-4.9.9.2_setup.7z

Dev C++ 사용방법

사용자 삽입 이미지


1. 파일에서 프로젝트를 클릭합니다.

사용자 삽입 이미지


2. 검은색으로 메모해둔 내용을 클릭하고 조건을 입력한 후에 확인을 누릅니다.

사용자 삽입 이미지


3. 코드를 입력후에 단축키 'F9'를 누르거나 '실행 메뉴'에서 '컴파일 후 실행'을 클릭합니다.


DEV C++를 사용할 때 알아두면 좋아요

문법 공부할 때 프로그램이 켜지자 마자 종료 될때...

system("PAUSE");
라고 명령어를 입력합니다.
반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 포인터 연산  (122) 2009.05.13
[C언어] 포인터에 익숙해지는 방법은...  (136) 2009.05.13
[C언어] 포인터 개념의 이해  (134) 2009.05.13
연산자와 C언어  (128) 2009.03.30
C언어 입문의 시작  (133) 2009.03.20
728x90
300x250

[연산자와 C언어]

[논리식]
OR 연산자 : ||
AND 연산자 : &&
부정 연산자 : !

[비교식]
> : 크다
< : 작다
<= : 작거나 같다.
>= : 크거나 같다.

== : 같다.
!= : 같지 않다.


1. 연산자 - 소스코드

#include <Stdio.h>

main()
{
     
      // 기초논리회로 실습 (정정: 논리회로->연산자)
      
      int b1, b2, b3, b4;
     
      b1 = 10;
      b2 = b1 || 5>10;
      b3 = b1 && 5>10;
      b4 = !b3;     

      printf("B1 %d\n",b1);
      printf("B2 %d\n",b2);
      printf("B3 %d\n",b3);
      printf("B4 %d\n",b4);
     
}



 

반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 포인터 연산  (122) 2009.05.13
[C언어] 포인터에 익숙해지는 방법은...  (136) 2009.05.13
[C언어] 포인터 개념의 이해  (134) 2009.05.13
[GNU - C, C++] Dev C++ 5.0 - IDE  (134) 2009.03.30
C언어 입문의 시작  (133) 2009.03.20

+ Recent posts