2010-06-01 2 views
1

Digital Persona의 무료 Linux SDK 라이브러리를 사용하여 지문과 일치하는 mysql UDF를 만들려고합니다. 나는 잘 작동 한 학습 경험으로 사소한 UDF를 작성했다. 그러나 Digital Persona의 공유 객체에 종속성을 추가하면 더 이상 MySql에 내 UDF를로드 할 수 없습니다.공유 라이브러리를 사용하는 MySql UDF가로드되지 않습니다.

나는 DP의 헤더에 포함되어 추가 사용하여 내 UDF를 컴파일 :

gcc -fPIC -Wall -I/usr/src/mysql-5.0.45-linux-i686-icc-glibc23/include -shared -o dp_udf.so dp_udf.cc 

나는 또한 -static 인수를 추가했지만, 내가 MySQL을 다시 시작 할 때마다, 나는 오류 얻을 :

Can't open shared library 'dp_udf.so' (errno: 0 /usr/local/mysql/lib/plugin/dp_udf.so: undefined symbol: MC_verifyFeaturesEx) 

을 MC_verifyFeaturesEx는 포함 된 "dpMatch.h"함수 정의이며, libdpfpapi.so에 구현되어 있습니다.이 라이브러리는 내 dp_udf.so 및/usr/lib와 동일한 위치에 배치하려고 시도했습니다.

gcc (내 C++ 기술이 녹슬지)에 대한 호출에 문제가 있습니까? 아니면 MySql에서 추가 공유 객체를 사용하도록 허용하지 않습니까?

+0

UDF * 사용자 정의 필드 * 또는 * 사용자 정의 함수 *입니까? - Hater에서. –

+0

Mysql UDF는 "사용자 정의 함수"입니다. MySql이 호출 할 수있는 특정 인터페이스를 구현하는 C 함수. http://dev.mysql.com/doc/refman/5.0/en/adding-functions.html – Jarrod

답변

1

문제는 라이브러리가 다른 라이브러리에 의존한다는 것입니다. MySQL/dl은 이것을 모르고로드하지 않습니다. 라이브러리를 Digital Persona의 라이브러리에 명시 적으로 링크해야합니다. -l{libname} (및 아마도 -L/lib/path)을 사용하여이 작업을 수행 할 수 있습니다.

관련 문제