Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

can't install luasql-odbc with luarocks on debian 10/11 #129

Closed
laigor opened this issue Sep 23, 2021 · 7 comments · Fixed by #132
Closed

can't install luasql-odbc with luarocks on debian 10/11 #129

laigor opened this issue Sep 23, 2021 · 7 comments · Fixed by #132

Comments

@laigor
Copy link
Contributor

laigor commented Sep 23, 2021

installed :

  • lua5.3/stable,now 5.3.3-1.1+b1
  • liblua5.3-dev/stable,now 5.3.3-1.1+b1
  • luarocks/stable,stable,now 2.4.2+dfsg-1.1
  • unixodbc-dev/stable,now 2.3.6-0.1+b1
Installing https://luarocks.org/luasql-odbc-2.6.0-1.rockspec
Клонирование в «luasql»…
remote: Enumerating objects: 149, done.
remote: Counting objects: 100% (149/149), done.
remote: Compressing objects: 100% (99/99), done.
remote: Total 149 (delta 72), reused 72 (delta 36), pack-reused 0
Получение объектов: 100% (149/149), 104.13 KiB | 264.00 KiB/s, готово.
Определение изменений: 100% (72/72), готово.
Note: switching to '22d4a911f35cf851af9db71124e3998d96fb3fa1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

gcc -O2 -fPIC -I/usr/include/lua5.3 -c src/luasql.c -o src/luasql.o -I/usr/include
gcc -O2 -fPIC -I/usr/include/lua5.3 -c src/ls_odbc.c -o src/ls_odbc.o -I/usr/include
src/ls_odbc.c:37:2: error: unknown type name ‘SQLPOINTER’
   37 |  SQLPOINTER buf;
      |  ^~~~~~~~~~
src/ls_odbc.c:38:2: error: unknown type name ‘SQLINTEGER’
   38 |  SQLINTEGER len;
      |  ^~~~~~~~~~
src/ls_odbc.c:39:2: error: unknown type name ‘SQLINTEGER’
   39 |  SQLINTEGER type;
      |  ^~~~~~~~~~
src/ls_odbc.c:51:2: error: unknown type name ‘SQLHENV’
   51 |  SQLHENV       henv;               /* environment handle */
      |  ^~~~~~~
src/ls_odbc.c:58:2: error: unknown type name ‘SQLHDBC’
   58 |  SQLHDBC       hdbc;               /* database connection handle */
      |  ^~~~~~~
src/ls_odbc.c:66:2: error: unknown type name ‘SQLHSTMT’
   66 |  SQLHSTMT      hstmt;              /* statement handle */
      |  ^~~~~~~~
src/ls_odbc.c:67:2: error: unknown type name ‘SQLSMALLINT’
   67 |  SQLSMALLINT   numparams;          /* number of input parameters */
      |  ^~~~~~~~~~~
src/ls_odbc.c:85:18: error: unknown type name ‘SQLRETURN’
   85 | static int error(SQLRETURN a)
      |                  ^~~~~~~~~
src/ls_odbc.c:195:38: error: unknown type name ‘SQLSMALLINT’
  195 | static int fail(lua_State *L,  const SQLSMALLINT type, const SQLHANDLE handle) {
      |                                      ^~~~~~~~~~~
src/ls_odbc.c:195:62: error: unknown type name ‘SQLHANDLE’
  195 | static int fail(lua_State *L,  const SQLSMALLINT type, const SQLHANDLE handle) {
      |                                                              ^~~~~~~~~
src/ls_odbc.c: In function ‘fail’:
src/ls_odbc.c:196:5: error: unknown type name ‘SQLCHAR’
  196 |     SQLCHAR State[6];
      |     ^~~~~~~
src/ls_odbc.c:197:5: error: unknown type name ‘SQLINTEGER’
  197 |     SQLINTEGER NativeError;
      |     ^~~~~~~~~~
src/ls_odbc.c:198:5: error: unknown type name ‘SQLSMALLINT’
  198 |     SQLSMALLINT MsgSize, i;
      |     ^~~~~~~~~~~
src/ls_odbc.c:199:5: error: unknown type name ‘SQLRETURN’
  199 |     SQLRETURN ret;
      |     ^~~~~~~~~
src/ls_odbc.c:200:5: error: unknown type name ‘SQLCHAR’
  200 |     SQLCHAR Msg[SQL_MAX_MESSAGE_LENGTH];
      |     ^~~~~~~
src/ls_odbc.c:200:17: error: ‘SQL_MAX_MESSAGE_LENGTH’ undeclared (first use in this function)
  200 |     SQLCHAR Msg[SQL_MAX_MESSAGE_LENGTH];
      |                 ^~~~~~~~~~~~~~~~~~~~~~
src/ls_odbc.c:200:17: note: each undeclared identifier is reported only once for each function it appears in
src/ls_odbc.c:207:15: warning: implicit declaration of function ‘SQLGetDiagRec’ [-Wimplicit-function-declaration]
  207 |         ret = SQLGetDiagRec(type, handle, i, State, &NativeError, Msg,
      |               ^~~~~~~~~~~~~
src/ls_odbc.c:209:20: error: ‘SQL_NO_DATA’ undeclared (first use in this function)
  209 |         if (ret == SQL_NO_DATA) break;
      |                    ^~~~~~~~~~~
src/ls_odbc.c: At top level:
src/ls_odbc.c:218:39: error: unknown type name ‘SQLSMALLINT’
  218 | static param_data *malloc_stmt_params(SQLSMALLINT c)
      |                                       ^~~~~~~~~~~
src/ls_odbc.c:226:55: error: unknown type name ‘SQLSMALLINT’
  226 | static param_data *free_stmt_params(param_data *data, SQLSMALLINT c)
      |                                                       ^~~~~~~~~~~
src/ls_odbc.c: In function ‘stmt_shut’:
src/ls_odbc.c:246:2: error: unknown type name ‘SQLRETURN’
  246 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:253:17: warning: implicit declaration of function ‘free_stmt_params’ [-Wimplicit-function-declaration]
  253 |  stmt->params = free_stmt_params(stmt->params, stmt->numparams);
      |                 ^~~~~~~~~~~~~~~~
src/ls_odbc.c:253:15: warning: assignment to ‘param_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  253 |  stmt->params = free_stmt_params(stmt->params, stmt->numparams);
      |               ^
src/ls_odbc.c:255:8: warning: implicit declaration of function ‘SQLFreeHandle’ [-Wimplicit-function-declaration]
  255 |  ret = SQLFreeHandle(hSTMT, stmt->hstmt);
      |        ^~~~~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:255:22: note: in expansion of macro ‘hSTMT’
  255 |  ret = SQLFreeHandle(hSTMT, stmt->hstmt);
      |                      ^~~~~
src/ls_odbc.c:256:6: warning: implicit declaration of function ‘error’; did you mean ‘perror’? [-Wimplicit-function-declaration]
  256 |  if (error(ret)) {
      |      ^~~~~
      |      perror
src/ls_odbc.c: In function ‘cur_shut’:
src/ls_odbc.c:271:12: warning: implicit declaration of function ‘SQLCloseCursor’ [-Wimplicit-function-declaration]
  271 |  if (error(SQLCloseCursor(cur->stmt->hstmt))) {
      |            ^~~~~~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:272:18: note: in expansion of macro ‘hSTMT’
  272 |   return fail(L, hSTMT, cur->stmt->hstmt);
      |                  ^~~~~
src/ls_odbc.c: At top level:
src/ls_odbc.c:293:40: error: unknown type name ‘SQLSMALLINT’
  293 | static const char *sqltypetolua (const SQLSMALLINT type) {
      |                                        ^~~~~~~~~~~
src/ls_odbc.c: In function ‘sqltypetolua’:
src/ls_odbc.c:295:14: error: ‘SQL_UNKNOWN_TYPE’ undeclared (first use in this function)
  295 |         case SQL_UNKNOWN_TYPE: case SQL_CHAR: case SQL_VARCHAR:
      |              ^~~~~~~~~~~~~~~~
src/ls_odbc.c:295:37: error: ‘SQL_CHAR’ undeclared (first use in this function)
  295 |         case SQL_UNKNOWN_TYPE: case SQL_CHAR: case SQL_VARCHAR:
      |                                     ^~~~~~~~
src/ls_odbc.c:295:52: error: ‘SQL_VARCHAR’ undeclared (first use in this function)
  295 |         case SQL_UNKNOWN_TYPE: case SQL_CHAR: case SQL_VARCHAR:
      |                                                    ^~~~~~~~~~~
src/ls_odbc.c:296:14: error: ‘SQL_TYPE_DATE’ undeclared (first use in this function)
  296 |         case SQL_TYPE_DATE: case SQL_TYPE_TIME: case SQL_TYPE_TIMESTAMP:
      |              ^~~~~~~~~~~~~
src/ls_odbc.c:296:34: error: ‘SQL_TYPE_TIME’ undeclared (first use in this function)
  296 |         case SQL_TYPE_DATE: case SQL_TYPE_TIME: case SQL_TYPE_TIMESTAMP:
      |                                  ^~~~~~~~~~~~~
src/ls_odbc.c:296:54: error: ‘SQL_TYPE_TIMESTAMP’ undeclared (first use in this function)
  296 |         case SQL_TYPE_DATE: case SQL_TYPE_TIME: case SQL_TYPE_TIMESTAMP:
      |                                                      ^~~~~~~~~~~~~~~~~~
src/ls_odbc.c:297:14: error: ‘SQL_DATE’ undeclared (first use in this function)
  297 |         case SQL_DATE: case SQL_INTERVAL: case SQL_TIMESTAMP:
      |              ^~~~~~~~
src/ls_odbc.c:297:29: error: ‘SQL_INTERVAL’ undeclared (first use in this function)
  297 |         case SQL_DATE: case SQL_INTERVAL: case SQL_TIMESTAMP:
      |                             ^~~~~~~~~~~~
src/ls_odbc.c:297:48: error: ‘SQL_TIMESTAMP’ undeclared (first use in this function)
  297 |         case SQL_DATE: case SQL_INTERVAL: case SQL_TIMESTAMP:
      |                                                ^~~~~~~~~~~~~
src/ls_odbc.c:298:14: error: ‘SQL_LONGVARCHAR’ undeclared (first use in this function)
  298 |         case SQL_LONGVARCHAR:
      |              ^~~~~~~~~~~~~~~
src/ls_odbc.c:299:14: error: ‘SQL_WCHAR’ undeclared (first use in this function)
  299 |         case SQL_WCHAR: case SQL_WVARCHAR: case SQL_WLONGVARCHAR:
      |              ^~~~~~~~~
src/ls_odbc.c:299:30: error: ‘SQL_WVARCHAR’ undeclared (first use in this function)
  299 |         case SQL_WCHAR: case SQL_WVARCHAR: case SQL_WLONGVARCHAR:
      |                              ^~~~~~~~~~~~
src/ls_odbc.c:299:49: error: ‘SQL_WLONGVARCHAR’ undeclared (first use in this function)
  299 |         case SQL_WCHAR: case SQL_WVARCHAR: case SQL_WLONGVARCHAR:
      |                                                 ^~~~~~~~~~~~~~~~
src/ls_odbc.c:301:14: error: ‘SQL_BIGINT’ undeclared (first use in this function)
  301 |         case SQL_BIGINT: case SQL_TINYINT:
      |              ^~~~~~~~~~
src/ls_odbc.c:301:31: error: ‘SQL_TINYINT’ undeclared (first use in this function)
  301 |         case SQL_BIGINT: case SQL_TINYINT:
      |                               ^~~~~~~~~~~
src/ls_odbc.c:302:14: error: ‘SQL_INTEGER’ undeclared (first use in this function); did you mean ‘LUA_INTEGER’?
  302 |         case SQL_INTEGER: case SQL_SMALLINT:
      |              ^~~~~~~~~~~
      |              LUA_INTEGER
src/ls_odbc.c:302:32: error: ‘SQL_SMALLINT’ undeclared (first use in this function)
  302 |         case SQL_INTEGER: case SQL_SMALLINT:
      |                                ^~~~~~~~~~~~
src/ls_odbc.c:306:8: error: ‘SQL_NUMERIC’ undeclared (first use in this function)
  306 |   case SQL_NUMERIC: case SQL_DECIMAL:
      |        ^~~~~~~~~~~
src/ls_odbc.c:306:26: error: ‘SQL_DECIMAL’ undeclared (first use in this function)
  306 |   case SQL_NUMERIC: case SQL_DECIMAL:
      |                          ^~~~~~~~~~~
src/ls_odbc.c:307:14: error: ‘SQL_FLOAT’ undeclared (first use in this function)
  307 |         case SQL_FLOAT: case SQL_REAL: case SQL_DOUBLE:
      |              ^~~~~~~~~
src/ls_odbc.c:307:30: error: ‘SQL_REAL’ undeclared (first use in this function)
  307 |         case SQL_FLOAT: case SQL_REAL: case SQL_DOUBLE:
      |                              ^~~~~~~~
src/ls_odbc.c:307:45: error: ‘SQL_DOUBLE’ undeclared (first use in this function)
  307 |         case SQL_FLOAT: case SQL_REAL: case SQL_DOUBLE:
      |                                             ^~~~~~~~~~
src/ls_odbc.c:309:14: error: ‘SQL_BINARY’ undeclared (first use in this function)
  309 |         case SQL_BINARY: case SQL_VARBINARY: case SQL_LONGVARBINARY:
      |              ^~~~~~~~~~
src/ls_odbc.c:309:31: error: ‘SQL_VARBINARY’ undeclared (first use in this function)
  309 |         case SQL_BINARY: case SQL_VARBINARY: case SQL_LONGVARBINARY:
      |                               ^~~~~~~~~~~~~
src/ls_odbc.c:309:51: error: ‘SQL_LONGVARBINARY’ undeclared (first use in this function)
  309 |         case SQL_BINARY: case SQL_VARBINARY: case SQL_LONGVARBINARY:
      |                                                   ^~~~~~~~~~~~~~~~~
src/ls_odbc.c:311:14: error: ‘SQL_BIT’ undeclared (first use in this function)
  311 |         case SQL_BIT:
      |              ^~~~~~~
src/ls_odbc.c: At top level:
src/ls_odbc.c:329:58: error: unknown type name ‘SQLHSTMT’
  329 | static int push_column(lua_State *L, int coltypes, const SQLHSTMT hstmt,
      |                                                          ^~~~~~~~
src/ls_odbc.c:330:9: error: unknown type name ‘SQLUSMALLINT’
  330 |         SQLUSMALLINT i) {
      |         ^~~~~~~~~~~~
src/ls_odbc.c: In function ‘cur_fetch’:
src/ls_odbc.c:437:2: error: unknown type name ‘SQLHSTMT’
  437 |  SQLHSTMT hstmt = cur->stmt->hstmt;
      |  ^~~~~~~~
src/ls_odbc.c:439:2: error: unknown type name ‘SQLRETURN’
  439 |  SQLRETURN rc = SQLFetch(hstmt);
      |  ^~~~~~~~~
src/ls_odbc.c:439:17: warning: implicit declaration of function ‘SQLFetch’ [-Wimplicit-function-declaration]
  439 |  SQLRETURN rc = SQLFetch(hstmt);
      |                 ^~~~~~~~
src/ls_odbc.c:440:12: error: ‘SQL_NO_DATA’ undeclared (first use in this function)
  440 |  if (rc == SQL_NO_DATA) {
      |            ^~~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:450:19: note: in expansion of macro ‘hSTMT’
  450 |    return fail(L, hSTMT, hstmt);
      |                   ^~~~~
src/ls_odbc.c:455:3: error: unknown type name ‘SQLUSMALLINT’
  455 |   SQLUSMALLINT i;
      |   ^~~~~~~~~~~~
src/ls_odbc.c:460:10: warning: implicit declaration of function ‘push_column’ [-Wimplicit-function-declaration]
  460 |    ret = push_column (L, cur->coltypes, hstmt, i);
      |          ^~~~~~~~~~~
src/ls_odbc.c:480:3: error: unknown type name ‘SQLUSMALLINT’
  480 |   SQLUSMALLINT i;
      |   ^~~~~~~~~~~~
src/ls_odbc.c: In function ‘create_colinfo’:
src/ls_odbc.c:538:2: error: unknown type name ‘SQLCHAR’
  538 |  SQLCHAR buffer[256];
      |  ^~~~~~~
src/ls_odbc.c:539:2: error: unknown type name ‘SQLSMALLINT’
  539 |  SQLSMALLINT namelen, datatype, i;
      |  ^~~~~~~~~~~
src/ls_odbc.c:540:2: error: unknown type name ‘SQLRETURN’
  540 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:548:9: warning: implicit declaration of function ‘SQLDescribeCol’ [-Wimplicit-function-declaration]
  548 |   ret = SQLDescribeCol(cur->stmt->hstmt, i, buffer, sizeof(buffer),
      |         ^~~~~~~~~~~~~~
src/ls_odbc.c:550:14: error: ‘SQL_ERROR’ undeclared (first use in this function)
  550 |   if (ret == SQL_ERROR) {
      |              ^~~~~~~~~
src/ls_odbc.c: At top level:
src/ls_odbc.c:571:33: error: unknown type name ‘SQLSMALLINT’
  571 |                           const SQLSMALLINT numcols)
      |                                 ^~~~~~~~~~~
src/ls_odbc.c: In function ‘create_cursor’:
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:590:18: note: in expansion of macro ‘hSTMT’
  590 |   return fail(L, hSTMT, cur->stmt->hstmt);
      |                  ^~~~~
src/ls_odbc.c: In function ‘stmt_close’:
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:620:18: note: in expansion of macro ‘hSTMT’
  620 |   return fail(L, hSTMT, stmt->hstmt);
      |                  ^~~~~
src/ls_odbc.c: In function ‘conn_close’:
src/ls_odbc.c:633:2: error: unknown type name ‘SQLRETURN’
  633 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:649:8: warning: implicit declaration of function ‘SQLDisconnect’ [-Wimplicit-function-declaration]
  649 |  ret = SQLDisconnect(conn->hdbc);
      |        ^~~~~~~~~~~~~
src/ls_odbc.c:83:14: error: ‘SQL_HANDLE_DBC’ undeclared (first use in this function)
   83 | #define hDBC SQL_HANDLE_DBC
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:651:18: note: in expansion of macro ‘hDBC’
  651 |   return fail(L, hDBC, conn->hdbc);
      |                  ^~~~
src/ls_odbc.c: In function ‘raw_execute’:
src/ls_odbc.c:669:2: error: unknown type name ‘SQLSMALLINT’
  669 |  SQLSMALLINT numcols;
      |  ^~~~~~~~~~~
src/ls_odbc.c:674:12: warning: implicit declaration of function ‘SQLExecute’ [-Wimplicit-function-declaration]
  674 |  if (error(SQLExecute(stmt->hstmt))) {
      |            ^~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:675:18: note: in expansion of macro ‘hSTMT’
  675 |   return fail(L, hSTMT, stmt->hstmt);
      |                  ^~~~~
src/ls_odbc.c:679:12: warning: implicit declaration of function ‘SQLNumResultCols’ [-Wimplicit-function-declaration]
  679 |  if (error(SQLNumResultCols(stmt->hstmt, &numcols))) {
      |            ^~~~~~~~~~~~~~~~
src/ls_odbc.c:688:3: error: unknown type name ‘SQLINTEGER’
  688 |   SQLINTEGER numrows;
      |   ^~~~~~~~~~
src/ls_odbc.c:689:12: warning: implicit declaration of function ‘SQLRowCount’ [-Wimplicit-function-declaration]
  689 |   if(error(SQLRowCount(stmt->hstmt, &numrows))) {
      |            ^~~~~~~~~~~
src/ls_odbc.c: In function ‘set_param’:
src/ls_odbc.c:700:9: error: unknown type name ‘SQLINTEGER’
  700 |  static SQLINTEGER cbNull = SQL_NULL_DATA;
      |         ^~~~~~~~~~
src/ls_odbc.c:700:29: error: ‘SQL_NULL_DATA’ undeclared (first use in this function)
  700 |  static SQLINTEGER cbNull = SQL_NULL_DATA;
      |                             ^~~~~~~~~~~~~
src/ls_odbc.c:706:13: warning: implicit declaration of function ‘SQLBindParameter’ [-Wimplicit-function-declaration]
  706 |    if(error(SQLBindParameter(stmt->hstmt, i, SQL_PARAM_INPUT, SQL_C_DEFAULT,
      |             ^~~~~~~~~~~~~~~~
src/ls_odbc.c:706:46: error: ‘SQL_PARAM_INPUT’ undeclared (first use in this function)
  706 |    if(error(SQLBindParameter(stmt->hstmt, i, SQL_PARAM_INPUT, SQL_C_DEFAULT,
      |                                              ^~~~~~~~~~~~~~~
src/ls_odbc.c:706:63: error: ‘SQL_C_DEFAULT’ undeclared (first use in this function)
  706 |    if(error(SQLBindParameter(stmt->hstmt, i, SQL_PARAM_INPUT, SQL_C_DEFAULT,
      |                                                               ^~~~~~~~~~~~~
src/ls_odbc.c:707:30: error: ‘SQL_DOUBLE’ undeclared (first use in this function)
  707 |                              SQL_DOUBLE, 0, 0, NULL, 0, &cbNull))) {
      |                              ^~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:708:20: note: in expansion of macro ‘hSTMT’
  708 |     return fail(L, hSTMT, stmt->hstmt);
      |                    ^~~~~
src/ls_odbc.c:714:14: warning: assignment to ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
  714 |    data->buf = malloc(sizeof(double));
      |              ^
src/ls_odbc.c:715:5: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  715 |    *(double *)data->buf = (double)lua_tonumber(L, -1);
      |     ^
src/ls_odbc.c:721:63: error: ‘SQL_C_DOUBLE’ undeclared (first use in this function)
  721 |    if(error(SQLBindParameter(stmt->hstmt, i, SQL_PARAM_INPUT, SQL_C_DOUBLE,
      |                                                               ^~~~~~~~~~~~
src/ls_odbc.c:733:14: warning: assignment to ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
  733 |    data->buf = malloc(len+1);
      |              ^
src/ls_odbc.c:734:11: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  734 |    memcpy((char *)data->buf, str, len+1);
      |           ^
src/ls_odbc.c:736:17: error: ‘SQL_NTS’ undeclared (first use in this function)
  736 |    data->type = SQL_NTS;
      |                 ^~~~~~~
src/ls_odbc.c:740:63: error: ‘SQL_C_CHAR’ undeclared (first use in this function)
  740 |    if(error(SQLBindParameter(stmt->hstmt, i, SQL_PARAM_INPUT, SQL_C_CHAR,
      |                                                               ^~~~~~~~~~
src/ls_odbc.c:741:30: error: ‘SQL_CHAR’ undeclared (first use in this function)
  741 |                              SQL_CHAR, len, 0, data->buf, data->len,
      |                              ^~~~~~~~
src/ls_odbc.c:749:30: error: ‘SQLCHAR’ undeclared (first use in this function)
  749 |    data->buf = malloc(sizeof(SQLCHAR));
      |                              ^~~~~~~
src/ls_odbc.c:750:15: error: expected expression before ‘)’ token
  750 |    *(SQLCHAR *)data->buf = (SQLCHAR)lua_toboolean(L, -1);
      |               ^
src/ls_odbc.c:756:63: error: ‘SQL_C_BIT’ undeclared (first use in this function)
  756 |    if(error(SQLBindParameter(stmt->hstmt, i, SQL_PARAM_INPUT, SQL_C_BIT,
      |                                                               ^~~~~~~~~
src/ls_odbc.c:757:30: error: ‘SQL_BIT’ undeclared (first use in this function)
  757 |                              SQL_BIT, 0, 0, data->buf, data->len,
      |                              ^~~~~~~
src/ls_odbc.c: In function ‘raw_readparams_table’:
src/ls_odbc.c:777:9: error: unknown type name ‘SQLINTEGER’
  777 |  static SQLINTEGER cbNull = SQL_NULL_DATA;
      |         ^~~~~~~~~~
src/ls_odbc.c:777:29: error: ‘SQL_NULL_DATA’ undeclared (first use in this function)
  777 |  static SQLINTEGER cbNull = SQL_NULL_DATA;
      |                             ^~~~~~~~~~~~~
src/ls_odbc.c:778:2: error: unknown type name ‘SQLSMALLINT’
  778 |  SQLSMALLINT i;
      |  ^~~~~~~~~~~
src/ls_odbc.c:783:17: warning: implicit declaration of function ‘malloc_stmt_params’ [-Wimplicit-function-declaration]
  783 |  stmt->params = malloc_stmt_params(stmt->numparams);
      |                 ^~~~~~~~~~~~~~~~~~
src/ls_odbc.c:783:15: warning: assignment to ‘param_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  783 |  stmt->params = malloc_stmt_params(stmt->numparams);
      |               ^
src/ls_odbc.c: In function ‘raw_readparams_args’:
src/ls_odbc.c:805:9: error: unknown type name ‘SQLINTEGER’
  805 |  static SQLINTEGER cbNull = SQL_NULL_DATA;
      |         ^~~~~~~~~~
src/ls_odbc.c:805:29: error: ‘SQL_NULL_DATA’ undeclared (first use in this function)
  805 |  static SQLINTEGER cbNull = SQL_NULL_DATA;
      |                             ^~~~~~~~~~~~~
src/ls_odbc.c:806:2: error: unknown type name ‘SQLSMALLINT’
  806 |  SQLSMALLINT i;
      |  ^~~~~~~~~~~
src/ls_odbc.c:811:15: warning: assignment to ‘param_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  811 |  stmt->params = malloc_stmt_params(stmt->numparams);
      |               ^
src/ls_odbc.c: In function ‘desc_params’:
src/ls_odbc.c:864:2: error: unknown type name ‘SQLSMALLINT’
  864 |  SQLSMALLINT i;
      |  ^~~~~~~~~~~
src/ls_odbc.c:868:3: error: unknown type name ‘SQLSMALLINT’
  868 |   SQLSMALLINT type, digits, nullable;
      |   ^~~~~~~~~~~
src/ls_odbc.c:869:3: error: unknown type name ‘SQLULEN’
  869 |   SQLULEN len;
      |   ^~~~~~~
src/ls_odbc.c:873:12: warning: implicit declaration of function ‘SQLDescribeParam’ [-Wimplicit-function-declaration]
  873 |   if(error(SQLDescribeParam(stmt->hstmt, i, &type, &len, &digits, &nullable))) {
      |            ^~~~~~~~~~~~~~~~
src/ls_odbc.c: In function ‘conn_prepare’:
src/ls_odbc.c:895:2: error: unknown type name ‘SQLCHAR’
  895 |  SQLCHAR *statement = (SQLCHAR *)luaL_checkstring(L, 2);
      |  ^~~~~~~
src/ls_odbc.c:895:24: error: ‘SQLCHAR’ undeclared (first use in this function)
  895 |  SQLCHAR *statement = (SQLCHAR *)luaL_checkstring(L, 2);
      |                        ^~~~~~~
src/ls_odbc.c:895:33: error: expected expression before ‘)’ token
  895 |  SQLCHAR *statement = (SQLCHAR *)luaL_checkstring(L, 2);
      |                                 ^
src/ls_odbc.c:896:2: error: unknown type name ‘SQLHDBC’
  896 |  SQLHDBC hdbc = conn->hdbc;
      |  ^~~~~~~
src/ls_odbc.c:897:2: error: unknown type name ‘SQLHSTMT’
  897 |  SQLHSTMT hstmt;
      |  ^~~~~~~~
src/ls_odbc.c:898:2: error: unknown type name ‘SQLRETURN’
  898 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:902:8: warning: implicit declaration of function ‘SQLAllocHandle’ [-Wimplicit-function-declaration]
  902 |  ret = SQLAllocHandle(hSTMT, hdbc, &hstmt);
      |        ^~~~~~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:902:23: note: in expansion of macro ‘hSTMT’
  902 |  ret = SQLAllocHandle(hSTMT, hdbc, &hstmt);
      |                       ^~~~~
src/ls_odbc.c:83:14: error: ‘SQL_HANDLE_DBC’ undeclared (first use in this function)
   83 | #define hDBC SQL_HANDLE_DBC
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:904:18: note: in expansion of macro ‘hDBC’
  904 |   return fail(L, hDBC, hdbc);
      |                  ^~~~
src/ls_odbc.c:907:8: warning: implicit declaration of function ‘SQLPrepare’ [-Wimplicit-function-declaration]
  907 |  ret = SQLPrepare(hstmt, statement, SQL_NTS);
      |        ^~~~~~~~~~
src/ls_odbc.c:907:37: error: ‘SQL_NTS’ undeclared (first use in this function)
  907 |  ret = SQLPrepare(hstmt, statement, SQL_NTS);
      |                                     ^~~~~~~
src/ls_odbc.c:922:11: warning: implicit declaration of function ‘SQLNumParams’ [-Wimplicit-function-declaration]
  922 |  if(error(SQLNumParams(hstmt, &stmt->numparams))) {
      |           ^~~~~~~~~~~~
src/ls_odbc.c: In function ‘conn_commit’:
src/ls_odbc.c:995:2: error: unknown type name ‘SQLRETURN’
  995 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_COMMIT);
      |  ^~~~~~~~~
src/ls_odbc.c:995:18: warning: implicit declaration of function ‘SQLEndTran’ [-Wimplicit-function-declaration]
  995 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_COMMIT);
      |                  ^~~~~~~~~~
src/ls_odbc.c:83:14: error: ‘SQL_HANDLE_DBC’ undeclared (first use in this function)
   83 | #define hDBC SQL_HANDLE_DBC
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:995:29: note: in expansion of macro ‘hDBC’
  995 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_COMMIT);
      |                             ^~~~
src/ls_odbc.c:995:47: error: ‘SQL_COMMIT’ undeclared (first use in this function)
  995 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_COMMIT);
      |                                               ^~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:997:18: note: in expansion of macro ‘hSTMT’
  997 |   return fail(L, hSTMT, conn->hdbc);
      |                  ^~~~~
src/ls_odbc.c: In function ‘conn_rollback’:
src/ls_odbc.c:1007:2: error: unknown type name ‘SQLRETURN’
 1007 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_ROLLBACK);
      |  ^~~~~~~~~
src/ls_odbc.c:83:14: error: ‘SQL_HANDLE_DBC’ undeclared (first use in this function)
   83 | #define hDBC SQL_HANDLE_DBC
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:1007:29: note: in expansion of macro ‘hDBC’
 1007 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_ROLLBACK);
      |                             ^~~~
src/ls_odbc.c:1007:47: error: ‘SQL_ROLLBACK’ undeclared (first use in this function)
 1007 |  SQLRETURN ret = SQLEndTran(hDBC, conn->hdbc, SQL_ROLLBACK);
      |                                               ^~~~~~~~~~~~
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:1009:18: note: in expansion of macro ‘hSTMT’
 1009 |   return fail(L, hSTMT, conn->hdbc);
      |                  ^~~~~
src/ls_odbc.c: In function ‘conn_setautocommit’:
src/ls_odbc.c:1019:2: error: unknown type name ‘SQLRETURN’
 1019 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:1021:9: warning: implicit declaration of function ‘SQLSetConnectAttr’ [-Wimplicit-function-declaration]
 1021 |   ret = SQLSetConnectAttr(conn->hdbc, SQL_ATTR_AUTOCOMMIT,
      |         ^~~~~~~~~~~~~~~~~
src/ls_odbc.c:1021:39: error: ‘SQL_ATTR_AUTOCOMMIT’ undeclared (first use in this function)
 1021 |   ret = SQLSetConnectAttr(conn->hdbc, SQL_ATTR_AUTOCOMMIT,
      |                                       ^~~~~~~~~~~~~~~~~~~
src/ls_odbc.c:1022:5: error: ‘SQLPOINTER’ undeclared (first use in this function)
 1022 |    (SQLPOINTER) SQL_AUTOCOMMIT_ON, 0);
      |     ^~~~~~~~~~
src/ls_odbc.c:1022:16: error: expected ‘)’ before ‘SQL_AUTOCOMMIT_ON’
 1022 |    (SQLPOINTER) SQL_AUTOCOMMIT_ON, 0);
      |                ^~~~~~~~~~~~~~~~~~
      |                )
src/ls_odbc.c:1025:16: error: expected ‘)’ before ‘SQL_AUTOCOMMIT_OFF’
 1025 |    (SQLPOINTER) SQL_AUTOCOMMIT_OFF, 0);
      |                ^~~~~~~~~~~~~~~~~~~
      |                )
src/ls_odbc.c:82:15: error: ‘SQL_HANDLE_STMT’ undeclared (first use in this function)
   82 | #define hSTMT SQL_HANDLE_STMT
      |               ^~~~~~~~~~~~~~~
src/ls_odbc.c:1028:18: note: in expansion of macro ‘hSTMT’
 1028 |   return fail(L, hSTMT, conn->hdbc);
      |                  ^~~~~
src/ls_odbc.c: At top level:
src/ls_odbc.c:1037:67: error: unknown type name ‘SQLHDBC’
 1037 | static int create_connection (lua_State *L, int o, env_data *env, SQLHDBC hdbc)
      |                                                                   ^~~~~~~
src/ls_odbc.c: In function ‘env_connect’:
src/ls_odbc.c:1073:2: error: unknown type name ‘SQLCHAR’
 1073 |  SQLCHAR *sourcename = (SQLCHAR*)luaL_checkstring (L, 2);
      |  ^~~~~~~
src/ls_odbc.c:1073:25: error: ‘SQLCHAR’ undeclared (first use in this function)
 1073 |  SQLCHAR *sourcename = (SQLCHAR*)luaL_checkstring (L, 2);
      |                         ^~~~~~~
src/ls_odbc.c:1073:33: error: expected expression before ‘)’ token
 1073 |  SQLCHAR *sourcename = (SQLCHAR*)luaL_checkstring (L, 2);
      |                                 ^
src/ls_odbc.c:1074:11: error: ‘username’ undeclared (first use in this function); did you mean ‘rename’?
 1074 |  SQLCHAR *username = (SQLCHAR*)luaL_optstring (L, 3, NULL);
      |           ^~~~~~~~
      |           rename
src/ls_odbc.c:1074:31: error: expected expression before ‘)’ token
 1074 |  SQLCHAR *username = (SQLCHAR*)luaL_optstring (L, 3, NULL);
      |                               ^
src/ls_odbc.c:1075:11: error: ‘password’ undeclared (first use in this function)
 1075 |  SQLCHAR *password = (SQLCHAR*)luaL_optstring (L, 4, NULL);
      |           ^~~~~~~~
src/ls_odbc.c:1075:31: error: expected expression before ‘)’ token
 1075 |  SQLCHAR *password = (SQLCHAR*)luaL_optstring (L, 4, NULL);
      |                               ^
src/ls_odbc.c:1076:2: error: unknown type name ‘SQLHDBC’
 1076 |  SQLHDBC hdbc;
      |  ^~~~~~~
src/ls_odbc.c:1077:2: error: unknown type name ‘SQLRETURN’
 1077 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:83:14: error: ‘SQL_HANDLE_DBC’ undeclared (first use in this function)
   83 | #define hDBC SQL_HANDLE_DBC
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:1080:24: note: in expansion of macro ‘hDBC’
 1080 |  ret = SQLAllocHandle (hDBC, env->henv, &hdbc);
      |                        ^~~~
src/ls_odbc.c:1085:8: warning: implicit declaration of function ‘SQLConnect’ [-Wimplicit-function-declaration]
 1085 |  ret = SQLConnect (hdbc, sourcename, SQL_NTS,
      |        ^~~~~~~~~~
src/ls_odbc.c:1085:38: error: ‘SQL_NTS’ undeclared (first use in this function)
 1085 |  ret = SQLConnect (hdbc, sourcename, SQL_NTS,
      |                                      ^~~~~~~
src/ls_odbc.c:1094:9: warning: implicit declaration of function ‘create_connection’; did you mean ‘getconnection’? [-Wimplicit-function-declaration]
 1094 |  return create_connection (L, 1, env, hdbc);
      |         ^~~~~~~~~~~~~~~~~
      |         getconnection
src/ls_odbc.c: In function ‘env_close’:
src/ls_odbc.c:1102:2: error: unknown type name ‘SQLRETURN’
 1102 |  SQLRETURN ret;
      |  ^~~~~~~~~
src/ls_odbc.c:81:14: error: ‘SQL_HANDLE_ENV’ undeclared (first use in this function)
   81 | #define hENV SQL_HANDLE_ENV
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:1114:23: note: in expansion of macro ‘hENV’
 1114 |  ret = SQLFreeHandle (hENV, env->henv);
      |                       ^~~~
src/ls_odbc.c:1117:13: warning: assignment to ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
 1117 |   env->henv = NULL;
      |             ^
src/ls_odbc.c: In function ‘create_environment’:
src/ls_odbc.c:1173:2: error: unknown type name ‘SQLHENV’
 1173 |  SQLHENV henv;
      |  ^~~~~~~
src/ls_odbc.c:1174:2: error: unknown type name ‘SQLRETURN’
 1174 |  SQLRETURN ret = SQLAllocHandle(hENV, SQL_NULL_HANDLE, &henv);
      |  ^~~~~~~~~
src/ls_odbc.c:81:14: error: ‘SQL_HANDLE_ENV’ undeclared (first use in this function)
   81 | #define hENV SQL_HANDLE_ENV
      |              ^~~~~~~~~~~~~~
src/ls_odbc.c:1174:33: note: in expansion of macro ‘hENV’
 1174 |  SQLRETURN ret = SQLAllocHandle(hENV, SQL_NULL_HANDLE, &henv);
      |                                 ^~~~
src/ls_odbc.c:1174:39: error: ‘SQL_NULL_HANDLE’ undeclared (first use in this function)
 1174 |  SQLRETURN ret = SQLAllocHandle(hENV, SQL_NULL_HANDLE, &henv);
      |                                       ^~~~~~~~~~~~~~~
src/ls_odbc.c:1179:8: warning: implicit declaration of function ‘SQLSetEnvAttr’ [-Wimplicit-function-declaration]
 1179 |  ret = SQLSetEnvAttr (henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
      |        ^~~~~~~~~~~~~
src/ls_odbc.c:1179:29: error: ‘SQL_ATTR_ODBC_VERSION’ undeclared (first use in this function)
 1179 |  ret = SQLSetEnvAttr (henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
      |                             ^~~~~~~~~~~~~~~~~~~~~
src/ls_odbc.c:1179:60: error: ‘SQL_OV_ODBC3’ undeclared (first use in this function)
 1179 |  ret = SQLSetEnvAttr (henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
      |                                                            ^~~~~~~~~~~~

Error: Build error: Failed compiling object src/ls_odbc.o
@laigor laigor changed the title can't install with luarocks on debian 10/11 can't install luasql-odbc with luarocks on debian 10/11 Sep 23, 2021
@laigor
Copy link
Contributor Author

laigor commented Sep 26, 2021

Compilation fails because UNIXODBC is not defined. I don't know the correct way to solve this problem. To work around the problem, I use the following command to install luasql-odbc:
luarocks CFLAGS="-DUNIXODBC" install luasql-odbc

@tomasguisasola
Copy link
Contributor

tomasguisasola commented Sep 27, 2021 via email

@laigor
Copy link
Contributor Author

laigor commented Sep 28, 2021

Am I the only one who installs luasql-odbc in linux via luarocks? UNIXODBC should be detected automatically, or at least the documentation should indicate how to properly install luasql-odbc in Linux.

@tomasguisasola
Copy link
Contributor

tomasguisasola commented Sep 28, 2021 via email

@laigor
Copy link
Contributor Author

laigor commented Oct 13, 2021

Same issue #131

@deining
Copy link
Contributor

deining commented Sep 29, 2022

Am I the only one who installs luasql-odbc in linux via luarocks?

No, you are not :-). I encountered the same issues you addressed with this issue today.

UNIXODBC should be detected automatically

This this was fixed meanwhile, but unfortunately there is no new version available on luraocks.org that contains that fix. Would be really helpful if a new version could be released soon.

@granjerox
Copy link

I've managed to install it by patching file manually

luarocks unpack luasql-odbc
cd luasql-odbc-2.6.0-1/luasql
nano src/ls_odbc.c  
    change line 19 from 
         #elif defined(UNIXODBC)
    to
         #else
luarocks make luasql-odbc-2.6.0-1.rockspec 

and thats it.

ps.: It still throws some warnings

❯ luarocks make luasql-odbc-2.6.0-1.rockspec
gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/luasql.c -o src/luasql.o -I/usr/include
gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/ls_odbc.c -o src/ls_odbc.o -I/usr/include
src/ls_odbc.c: In function ‘raw_execute’:
src/ls_odbc.c:689:37: warning: passing argument 2 of ‘SQLRowCount’ from incompatible pointer type [-Wincompatible-pointer-types]
  689 |   if(error(SQLRowCount(stmt->hstmt, &numrows))) {
      |                                     ^~~~~~~~
      |                                     |
      |                                     SQLINTEGER * {aka int *}
In file included from src/ls_odbc.c:20:
/usr/include/sql.h:768:44: note: expected ‘SQLLEN *’ {aka ‘long int *’} but argument is of type ‘SQLINTEGER *’ {aka ‘int *’}
  768 |                                    SQLLEN *RowCount);
      |                                    ~~~~~~~~^~~~~~~~
src/ls_odbc.c: In function ‘set_param’:
src/ls_odbc.c:707:57: warning: passing argument 10 of ‘SQLBindParameter’ from incompatible pointer type [-Wincompatible-pointer-types]
  707 |                              SQL_DOUBLE, 0, 0, NULL, 0, &cbNull))) {
      |                                                         ^~~~~~~
      |                                                         |
      |                                                         SQLINTEGER * {aka int *}
In file included from src/ls_odbc.c:22:
/usr/include/sqlext.h:2049:21: note: expected ‘SQLLEN *’ {aka ‘long int *’} but argument is of type ‘SQLINTEGER *’ {aka ‘int *’}
 2049 |     SQLLEN         *pcbValue);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~
src/ls_odbc.c:723:30: warning: passing argument 10 of ‘SQLBindParameter’ from incompatible pointer type [-Wincompatible-pointer-types]
  723 |                              &data->type))) {
      |                              ^~~~~~~~~~~
      |                              |
      |                              SQLINTEGER * {aka int *}
In file included from src/ls_odbc.c:22:
/usr/include/sqlext.h:2049:21: note: expected ‘SQLLEN *’ {aka ‘long int *’} but argument is of type ‘SQLINTEGER *’ {aka ‘int *’}
 2049 |     SQLLEN         *pcbValue);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~
src/ls_odbc.c:742:30: warning: passing argument 10 of ‘SQLBindParameter’ from incompatible pointer type [-Wincompatible-pointer-types]
  742 |                              &data->type))) {
      |                              ^~~~~~~~~~~
      |                              |
      |                              SQLINTEGER * {aka int *}
In file included from src/ls_odbc.c:22:
/usr/include/sqlext.h:2049:21: note: expected ‘SQLLEN *’ {aka ‘long int *’} but argument is of type ‘SQLINTEGER *’ {aka ‘int *’}
 2049 |     SQLLEN         *pcbValue);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~
src/ls_odbc.c:758:30: warning: passing argument 10 of ‘SQLBindParameter’ from incompatible pointer type [-Wincompatible-pointer-types]
  758 |                              &data->type))) {
      |                              ^~~~~~~~~~~
      |                              |
      |                              SQLINTEGER * {aka int *}
In file included from src/ls_odbc.c:22:
/usr/include/sqlext.h:2049:21: note: expected ‘SQLLEN *’ {aka ‘long int *’} but argument is of type ‘SQLINTEGER *’ {aka ‘int *’}
 2049 |     SQLLEN         *pcbValue);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~
gcc -shared -o luasql/odbc.so -L/usr/local/lib src/luasql.o src/ls_odbc.o -L/usr/lib -Wl,-rpath,/usr/lib: -lodbc
luasql-odbc 2.6.0-1 is now installed in /usr/local (license: MIT/X11)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

4 participants