星号:未定义的引用`SQLAllocHandle'

时间:2017-02-08 07:49:56

标签: c asterisk

我在asterisk/main目录中添加了一个test.c来测试ODBC。不幸的是,当我运行make时,它会显示如下。

test.o: In function `test_function':
/usr/src/asterisk-certified-13.8-cert3/main/libtest.c:10: 
undefined     reference to `SQLAllocHandle'
像这样的

test.c

#include "asterisk/res_odbc.h"

ASTERISK_FILE_VERSION(__FILE__, "$Revision$")


int test_function(void){
    int res;
    SQLHANDLE output_handle;
    res = SQLAllocHandle(SQL_HANDLE_ENV,  SQL_NULL_HANDLE,   &output_handle);

    if ( (res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO) ) {
        ast_log(LOG_DEBUG, "AllocHandle Success!\n");
        } else {
            ast_log(LOG_WARNING, "Error AllocHandle");
        }

    return 0;
}

我该如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

您应该将包含库的Makefile更改为您的模块。

但是当你使用星号时,这是错误的方法。

正确的方法是用户REALTIME或func_odbc,并使其关心连接。