Posted
Filed under C,C++

리눅스에서 gcc 컴파일러를 통해서 c를 컴파일할 수 있습니다.
이것을 통해서 데몬도 만들고 서버 작업 해야 될것도 있어
특히 이번에는 MYSQL과 연동하여 작업 할 것이 있어 C로 제작을 하기 위해서
시작 단계인 mysql과 + c를 연동 하기 위해서
이것저것 자료를 모아 정리 해 본다.
우선 아래 소스는 기본 소스입니다.

#include <stdio.h>
#include <mysql.h>
#include <errno.h>

int main( int argc, char *argv[], char**env )
{
 MYSQL mysql ;
 mysql_init(&mysql) ;

 if(!mysql_real_connect(&mysql, NULL, "instart","[instart]", "instart" ,3306, (char *)NULL, 0))
 {
  printf("%s\n",mysql_error(&mysql));

 }else{
  printf("성공적으로 연결되었습니다.\n") ;
 }

 mysql_close(&mysql) ;
}

컴파일
gcc mysqltest.c -o mysqltest -rdynamic -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -I/usr/local/mysql/include/mysql  -g -DUNIV_LINUX -DUNIV_LINUX

컴파일 옵션 값은
./mysql_config --libs --cflags
위 명령어를 통해서 구할 수 있습니다.
mysql 설치 디렉토리 확인 해보시면 mysql_config 파일이 있습니다.

마지막으로 mysql객체를 생성하면 세그멘테이션 오류  또는 segmentation fault
오류가 발생 합니다.
이경우에는
/etc/ld.so.conf  vi로 열어

/usr/local/mysql/lib/mysql
위와 같이 mysql lib 경로를 설정 해줬습니다.
시스템 상황에 맞춰서 경로를 넣어 주시고

/etc/ldconfig 를 싱행 해줍니다.

그리고 나서 다시 컴파일을 합니다.

이상으로 linux 에서 c언어로 mysql을 연동하기 위해서 해야 될것들에 대해서
정리를 해봤습니다.
<참고로 전 sulinux2.0 을 사용 하고 있습니다>

2013/02/15 16:09 2013/02/15 16:09