23.7.1 libmysqld에 의한 프로그램의 컴파일
임베디드 서버 라이브러리 libmysqld
를 포함 미리 컴파일 된 바이너리 MySQL 배포판에서는 MySQL은 해당 공급 업체 컴파일러가 있으면 그것을 사용하여 라이브러리를 구축합니다.
직접 소스에서 MySQL을 구축하는 경우 libmysqld
라이브러리를 얻으려면, -DWITH_EMBEDDED_SERVER=1
옵션을 사용하여 MySQL을 구성하십시오. 섹션 2.9.4 "MySQL 소스 구성 옵션" 을 참조하십시오.
프로그램을 libmysqld
과 링크시키는 경우 시스템 특정 pthread
라이브러리 및 MySQL 서버가 사용하는 몇 가지 라이브러리도 포함해야합니다. mysql_config --libmysqld-libs를 실행하여 라이브러리의 전체 목록을 얻을 수 있습니다.
코드에서 스레드 함수를 직접 호출하지 않더라도 스레드 프로그램을 컴파일하고 링크하는 올바른 플래그를 사용해야합니다.
C 프로그램을 컴파일하여 MySQL 서버 라이브러리를 프로그램의 실행 버전에 통합하는 데 필요한 파일을 포함하려면 컴파일러는 각종 파일을 찾을 위치를 알 필요가 있고, 프로그램의 컴파일 방법에 대한 지침이 필요 합니다. 다음의 예는 GNU C 컴파일러 gcc를 사용하는 것으로 명령 행에서 프로그램을 컴파일하는 방법을 보여줍니다.
gcc mysql_test.c -o mysql_test \ `/usr/local/mysql/bin/mysql_config --include --libmysqld-libs`
gcc 명령 직후에는 C 프로그램 소스 파일의 이름입니다. 그런 다음 -o
옵션을 지정하여 후속 파일 이름이 컴파일러가 출력 파일의 컴파일 된 프로그램에 지정 될 이름임을 나타냅니다. 코드의 다음 줄은 컴파일러에 포함 된 파일 및 라이브러리 그것이 컴파일되는 시스템의 기타 설정 위치를 검색하도록 지시합니다. mysql_config 명령은 작은 따옴표가 아니라 역 따옴표로 묶어야합니다.
일부 gcc 이외의 플랫폼에서는 내장 라이브러리는 C ++ 런타임 라이브러리에 의존하기 때문에 내장 라이브러리에 링크하면 기호 없음 오류가 발생할 수 있습니다. 이를 해결하려면 C ++ 컴파일러를 사용하여 연결하거나 연결 명령 행에서 필요한 라이브러리를 명시 적으로 언급합니다.