3. C언어 & MySQL 컴파일 테스트
1. mysql.h 라이브러리 다운로드
더보기
mysql.h 없을시 다운
sudo apt update;
sudo apt install libmysqlclient-dev build-essential -y;
- libmysqlclient-dev
C 애플리케이션에서 MySQL C API를 사용하기 위한 헤더·라이브러리 패키지입니다. - build-essential
GCC 등 빌드 도구 모음입니다.
mysql.h 설치된 헤더 위치 찾는 명령어
mysql_config --cflags
2. mysql.h 라이브러리 살펴보기
더보기
1. mysql.h 포함된 C 소스코드 예시
#include <stdio.h>
#include <mysql/mysql.h>
// #include "/usr/include/mysql/mysql.h"
void main()
{
printf("MySQL client version: %s\n", mysql_get_client_info());
return;
}
2. mysql 헤더 사용 방법 1
:헤더 전체 경로 지정
#include "/usr/include/mysql/mysql.h"
3. mysql 헤더 사용 방법 2
: VSCode 경우, c_cpp_properties.json 에 /usr/include/mysql 를 includePath에 추가
{
"configurations": [
{
"name": "Linux",
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/mysql" // ← MySQL 헤더 경로 추가
...
4. c언어 mysql 라이브러리 빌드 방법
MySQL C API는 C언어 표준 라이브러리가 아닙니다.
MySQL C API는 MySQL 데이터베이스 서버와 통신하기 위해 MySQL에서 별도로 제공하는 라이브러리입니다.
빌드시 컴파일러와 링커가 를 제대로 찾고 연결하려면, 헤더 파일과 라이브러리 파일의 위치를 명시해 주어야 합니다
- -I [헤더 파일(include)] 검색 경로 추가
- -L[라이브러리 디렉토리] 옵션 : 라이브러리 파일을 찾을 디렉토리를 지정한다.
- -l [링크(Link)] 할 특정 라이브러리를 지정한다.
3. mysql.h 라이브러리 포함, 빌드 명령 방법
더보기


1. mysql.h 포함된 C 소스코드 예시
#include <stdio.h>
#include <mysql/mysql.h>
// #include "/usr/include/mysql/mysql.h"
void main()
{
printf("MySQL client version: %s\n", mysql_get_client_info());
return;
}
2. 빌드 명령어
gcc 파일명.c -I/usr/include/mysql -L/usr/lib/x86_64-linux-gnu -lmysqlclient -o 실행파일명
gcc 파일명.c $(mysql_config --cflags) $(mysql_config --libs) -o 실행파일명

3. 빌드 명령어 - 상세(1)
gcc 파일명.c \
-I/usr/include/mysql \
-L/usr/lib/x86_64-linux-gnu \
-lmysqlclient \
-o 실행파일명
- -I/usr/include/mysql
- -I 로 헤더 경로 지정 → 컴파일 성공
- #include <mysql/mysql.h> 같은 MySQL 헤더 파일을, 컴파일러에게 “헤더가 이 디렉토리에 있습니다”라고 알려줍니다.
- -L/usr/lib/x86_64-linux-gnu
- -L 로 라이브러리 경로 지정 → 링커가 libmysqlclient 찾음
- MySQL 클라이언트 라이브러리(libmysqlclient.so)가 링크 시 .so(또는 .a) 파일을 시스템 기본 경로가 아닌 이 폴더에 설치돼 있기 때문에, 링커에게 “이 디렉토리도 뒤져 보세요”라고 알려주는 거죠.
- -lmysqlclient
- -l 로 mysqlclient 실제 연결 → 실행 가능한 mysql_app 생성
- libmysqlclient.so 를 최종 실행 파일에 연결하라는 옵션

4. 빌드 명령어 - 상세(2)
gcc 파일명.c -o 실행파일명 \
$(mysql_config --cflags) $(mysql_config --libs)
- mysql_config --cflags : 컴파일 시 필요한 -I 경로
- mysql_config --libs : 링크 시 필요한 -L/-l 옵션