无法在动态库中找到函数 'libudfex.so'

Could not find function in dynamic library 'libudfex.so'

根据 IQ' udf 指南,

创建 udf 程序如下:

  1. Declare the UDF to the server by using the CREATE FUNCTION or CREATE AGGREGATE FUNCTION

  2. Write the UDF library identification function

  3. Define the UDF as a set of C or C++ functions.

  4. Implement the function entry points in C/C++.

  5. Compile the UDF functions and the library identification functions
  6. Link the compiled file into a dynamically linkable library.

在我完成所有程序并在 Interactice 中声明 CREATE FUNCTION 之后 SQL,我调用函数并得到如下错误响应:

`

Could not execute statement.

Could not find 'my_sample_function' in dynamic library 'libudfex.so' SQLCODE=-621, ODBC 3 State="HY000" Line 1, column 1 SELECT my_sample_function(test.a, test.b) as aaa FROM test WHERE test.a = 3

`

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01034.1520/doc/html/jfo1254246965959.html

编译和链接动态链接库后,完成以下任务之一:

1.(推荐)更新 CREATE FUNCTION ... EXTERNAL NAME 以包含 UDF 库的显式路径名。 将UDF库文件放入所有IQ库所在目录。

2.Start IQ 服务器的库加载路径包括 UDF 库的位置。

3.On UNIX修改LD_LIBRARY_PATH内的start_iq启动脚本。虽然 LD_LIBRARY_PATH 对所有 UNIX 变体通用,但在 HP 上首选 SHLIB_PATH,在 AIX 上首选 LIB_PATH。

也许你错过了这一步