2011. 7. 11. 05:58

mysql_config는 MySQL 클라이언트를 컴파일링하고

그것을 MySQL로 연결하는데 필요한 유용한 정보를 제공한다.

 

mysql_config 옵션:

옵션

설명

--cflags

찾는 컴파일러 프래그들은 파일과 핵심 컴파일러 플래그들을 포함하며,

libmysqlclient 라이브러리를 컴파일 할 때 사용된 정의한다.

--include

MySQL을 찾는 컴파일러 옵션은 파일을 포함한다.

(이 옵션 대신에 일반적으로 Note --cflags 을 사용한다는 것을 명심하라.)

--libs

MySQL 클라이언트 라이브러리로 링크하기 위해 요구되는 라이브러리들과 옵션들.

--libs_r

스레드에 안전한 MySQL 클라이언트 라이브러리로 링크하기 위해 요구되는 라이브러리와 옵션.

--plugindir

플러그인 디렉토리.

--socket

MySQL 설정 시 정의된 디폴트 유닉스 소켓 파일.

--port

MySQL 설정 시 정의된 디폴트 TCP/IP 포트 넘버.

--version

MySQL 버전 숫자.

--libmysqld-libs

MySQL 임베디드 서버로 링크하기 위해 요구되는 라이브러리들과 옵션들.

 

옵션없이 mysql_config 실행하면 지원하는 옵션과 그 값들의 리스트를 보여준다.

shell> mysql_config

Usage: /usr/bin/mysql_config [OPTIONS]

Options:

■■■--cflags■■■[-I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX]

■■■--include■■[-I/usr/include/mysql]

■■■--libs■■■■[-Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient]

■■■--libs_r■■■[-Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient_r]

■■■--plugindir[/usr/lib/mysql/plugin]

■■■--socket■■[/var/run/mysqld/mysqld.sock]

■■■--port■■■■[0]

■■■--version■■[5.1.41]

■■■--libmysqld-libs[-Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqld -ldl -lwrap -lrt]

 

쉘 프롬프트 창에서 MySQL 클라이언트 프로그램 컴파일 예:

shell> CFG=/usr/local/mysql/bin/mysql_config

shell> sh -c "gcc -o progname `$CFG --cflags` progname.c `$CFG --libs`"

이런 방법으로 mysql_config을 사용할 때, 백틱(backtick / '`'캐릭터 내에서 그것을 실행해야 한다. 

그것은 쉘(shell)이 그것을 실행하도록 명령하며, 그 아웃풋을 주변 명령문에 대신 넣는다.

 

make를 이용한 MySQL 클라이언트 프로그램 컴파일 예:

Makefile 작성

CC = gcc

CFLAGS = -Wall $(shell mysql_config --cflags)

LIBS = $(shell mysql_config --libs)

 

EXECUTABLES = myclient

■■■■all : $(EXECUTABLES)

 

myclient : myclient.c

■■■■$(CC) $(CFLAGS) $^ -o $@ $(LIBS)

Make의 $(shell 셸 명령어) 함수를 이용하면 shell 함수 뒤에 오는 셸 명령을 수행하고 결과를 리턴한다.

Posted by devanix