2010-08-03 3 views
7
#include <my_global.h> 
#include <mysql.h> 

int main(int argc, char **argv) 
{ 
    printf("MySQL client version: %s\n", mysql_get_client_info()); 
} 

~ $의 gcc -o MySQL의 테스트 MySQL을 TEST.CGCC 실 거예요 컴파일하고 터미널에서이 테스트 프로그램을 실행하려고 MySQL의 C 라이브러리를

메신저 실행되지만 다음과 같은 오류 메시지가 :

/tmp/cceEmI0I.o : 기능 main': MySQL-Test.c:(.text+0xa): undefined reference to mysql_get_client_info '

잘못 무엇에? 내 시스템은 우분투입니다

답변

14

MySQL에는 mysql_config이라는 특수 스크립트가 제공됩니다. MySQL 클라이언트를 컴파일하고 MySQL 데이터베이스 서버에 연결하는 데 유용한 정보를 제공합니다.

패스 --libs 옵션 - MySQL 클라이언트 라이브러리와 링크하는 데 필요한 라이브러리 및 옵션. 당신이 IDE를 사용하는 경우
말 어쩌면

gcc -o mysql-test MySQL-Test.c $(mysql_config --libs) 
+0

덕분에, 잘 다음 작품 : 지금 을 "MySQL을 TEST.C는 -lmysqlclient -o MySQL의 테스트 GCC" 테스트 클래스가 작동하는지, 어떻게 포트를 것 그 명령을 NetBeans와 같은 IDE에? – JB87

+0

응용 프로그램을 자동으로 컴파일하는 Makefile을 작성하는 것이 좋습니다. 거기에서 GCC에 대한 명령 줄 인수를 지정할 수 있습니다. 메이크 파일 작성 방법에 대한 정보는 http://www.delorie.com/djgpp/doc/ug/larger/makefiles.html 자신 만의 메이크 파일 작성에 도움이되는 웹 사이트가 있습니다. – Gui13

+0

@codaddict Windows에서 어떻게합니까? – cokedude

2

라이브러리에 연결하지 않았습니다. 사용 : gcc -llibrarygoeshere -o mysql-test MySQL-Test.c gcc와 연결하는 방법에 대한 자세한 내용은 here을 참조하십시오.

4

당신은 (그것이 당신의 LIBPATH에없는 경우)

gcc -o mysql-test MySQL-Test.c -L/usr/local/mysql/lib -lmysqlclient -lz는 MySQL의 instructions for building clients를 참조하면 클라이언트 라이브러리는 어디든지 함께

-L/usr/local/mysql/lib를 교체해야합니다.

2

컴파일 오류가 아닙니다. 링크 오류입니다.

-lmysql 옵션을 사용하여 실행 파일을 만들려면 mysql 라이브러리를 추가해야한다.

1

하지만 나를 위해 일한 :

$ mysql_config --libs 

일반적인 출력 :

-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto 

지금 당신은 당신의 컴파일/링크 라인에이를 추가 할 수 있습니다 라이브러리를 프로젝트에 연결해야합니다.
우분투 12.4 64x에서 CodeBlocks을 사용하고 있습니다. 라이브러리를 링크하려면 프로젝트 -> 빌드 옵션 -> 링커 설정으로 이동하여 라이브러리를 추가해야합니다. 이것은 내 lib 경로입니다 : /usr/lib/x86_64-linux-gnu/libmysqlclient.so

희망이 있습니다 ...리눅스

열기에 넷빈즈의 사용에 대한

3

당신은 파일 (Makefile을)하고 다음 줄 오른쪽 환경 블록 아래

# These are the flags that gcc requires in order to link correctly against our installed 
# client packages 
MYSQL_LIBS := $(shell mysql_config --libs) 

를 추가합니다.

프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성, 빌드를 선택한 다음 $(MYSQL_LIBS)을 추가 옵션 매개 변수에 추가하십시오. 스크립트가 명확 afew 일을 도왔다

관련 문제