2010-05-26 5 views
0

"sudo port install mysqlxx + universal"을 실행하기 전에 mysql5의 범용 변종을 설치했습니다.Macport에서 MySQL ++ 컴파일 실패

... -lm C는 수학 함수를 사용하는 필요 여부를 확인 ... -lsocket가 필요한지 확인없이

... 아뇨

-lnsl 필요 여부를 확인 ... MySQL의 라이브러리 디렉토리에 대한 검사없이

.../옵션/지방/lib 디렉토리/mysql5/MySQL을 확인

이 디렉토리를 포함 MySQL을 .../옵션/지역/포함/mysql5/mysql을에게

우리가 직접 MySQL의 C API 라이브러리에 링크 할 수있는 경우

ZLIB를 확인

예 ...

은 zlib.h의 존재를 확인하는 예 ... zlib.h 유용성을 확인 더

... 확인하지 -lz를 추가하는 MySQL의 C API에 링크가 ... 더

을 성공하지 드릴 것입니다 여부를 확인

을 예 ... gzread에서 -lz 확인

을 예 ... .H

configure : error : MySQL 클라이언트 라이브러리에 연결할 수 없습니다!

+0

은 serverfault에 있어야합니다. –

+1

해당 포트의 관리자에게보고해야합니다. 한편 소스에서 컴파일 할 의향이 있기 때문에 http://tangentsoft.net/mysql++/에서 tarball을 다운로드하고 포함 된 지침에 따라 빌드하면 안됩니까? –

+0

@ Warren Young : 답변 섹션으로 의견을 옮기시겠습니까? 내 질문에 답변 해 주시면 감사하겠습니다. – lexu

답변

0

여기서 무슨 일이 일어나고있는 것은 당신이 스노우 레오파드를 운영하고 있다는 것입니다. 이전 버전의 OS X에서는 기본 C++ 컴파일러가 기본적으로 32 비트 실행 파일을 작성했지만이 파일은 Snow Leopard에서 64 비트로 변경되었습니다. 64 비트와 32 비트 실행 파일을 모두 지원하는 범용 라이브러리로 빌드되지 않은 경우 MySQL C API 라이브러리에 링크 문제가 발생할 수 있습니다.

이 문제를 해결하는 데는 여러 가지 방법이 있지만, 내가 아는 대부분의 것들은 MacPorts에서 작동하지 않거나 제대로 작동하지 않을 것입니다. 이 섹션을 Mac OS X 용 MySQL ++ README 섹션에 추가했습니다.이 섹션은 온라인으로 읽을 수 있습니다 (here).

아마도 이러한 솔루션을 MacPorts 빌드 시스템에 적용하는 방법을 이해할 수 있습니다. 이런 식으로 뭔가를 작동 할 수 있습니다 :

sudoport 장벽을 통해 그것을 만드는 그 환경 변수에 따라 달라집니다
CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 sudo port install mysqlxx +universal 

. 더 까다로울 수 있습니다. 예를 들면 다음과 같습니다.

sudo -s 
CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 port install mysqlxx +universal 

위에서 언급했듯이 소스 tarball에서 빌드하는 것이 가장 간단 할 수 있습니다.

관련 문제