2017-02-08 28 views
0

ODBCをテストするためにasterisk/mainディレクトリにtest.cを追加しました。残念ながら、makeを実行すると、以下のように表示されます。アスタリスク: `SQLAllocHandle 'への未定義の参照

#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; 
} 

私はこれをどのように修正することができます。このような

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

test.c?ありがとう!

+0

注: 'res_odbc'は' 'を含め、' 'と' '

+0

これは、リンカエラーなので、コードスニペットと.hファイルは全く関係ありません。 odbcライブラリをリンクするのを忘れました。 –

+0

odbcライブラリをリンクするには?私はヘッダファイルを含める必要があると思った。 –

答えて

0

モジュールにinclude libsのMakefileを変更する必要があります。

しかし、アスタリスクで作業しているときは、これは誤った方法です。

正しい方法は、ユーザーREALTIMEまたはfunc_odbcで、接続に注意してください。

+0

REALTIMEとfunc_odbcはどういう意味ですか? –

+0

https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration – arheops

+0

https://www.voip-info.org/wiki/view/Asterisk+func+func_odbc – arheops

関連する問題