2012-05-09 3 views
1
나는 (OSX)에이 명령 줄 컴파일하기 위해 노력하고있어

:C 컴파일러 헤더 파일을 찾을 수 없습니다

upload-comments.c:14:20: error: mysql.h: No such file or directory

mysql.h :

gcc -Wall upload-comments.c -l -o upload-comments -I/usr/local/mysql/include/ -L/usr/local/mysql/lib/ -lmysqlclient

그것은 다시 오류가 온다 이 (가) /usr/local/mysql/include/에 분명히 있습니다.

왜 헤더 파일을 찾지 못합니까?

감사합니다.

답변

1

-I... 비트 전에 필요로하는 소스 파일에 넣어야합니다.

gcc -Wall 
    -I/usr/local/mysql/include/ 
    upload-comments.c 
    -l 
    -o upload-comments 
    -L/usr/local/mysql/lib/ 
    -lmysqlclient 

gcc 명령은 (당신이 예를 들어, 후 라이브러리에게 그들이 필요로하는 파일을 을 나열해야합니다) 그 라이브러리 모두 위치를 구분합니다.

나체 라이브러리 이름 지정자 (실제 라이브러리 이름이없는 -l)가있는 이유가 확실하지 않습니다. 그것은 나에게 문제를 일으킬 수있는 것처럼 보이지만 제기 된 특정 문제와는 무관합니다.

이 대답에 따라 명령을 수정 한 후에도 문제가 계속되면 제거하고 싶을 수 있습니다.

+0

환상적! 발견 했어. 이제 단지'i686-apple-darwin11-llvm-gcc-4.2 : -Wall : No such file or directory'라고 말하는 것입니다. 왜 '벽'을 받아들이지 않을까요? – Nick

+0

-Wall을 꺼내서 -l-L/usr/local/mysql/lib/ collect2 : ld가 1 개의 종료 상태를 반환했습니다. – Nick

+0

@Nick 왜냐하면'-l'과'-L' 사이에 공백이 없기 때문에 전체'-L ...'옵션이 라이브러리 이름이라고 생각하기 때문입니다. 그런데 왜 거기에 네이밍 라이브러리 지정자 ('-l')가 있습니까? – paxdiablo

관련 문제