как мне скомпилировать или достать luasql

Страницы: 1
RSS
как мне скомпилировать или достать luasql
 
хочу использовать библиотеку luasql уже второй день мучаюсь с тем чтобы ее скомпилировать
установил luarocks в E:\lua сложил папки include и lib которые взял из mysql community server который скачал с офф сайта

ввожу luarocks install luasql-mysql MYSQL_DIR=E:/lua MYSQL_LIB=E:/lua

получаю
Код
mingw32-gcc -O2 -c -o src/luasql.o -IC:\Program Files (x86)\LuaRocks\include src/luasql.c -IE:/lua/include
mingw32-gcc -O2 -c -o src/ls_mysql.o -IC:\Program Files (x86)\LuaRocks\include src/ls_mysql.c -IE:/lua/include
mingw32-gcc -shared -o luasql/mysql.dll src/luasql.o src/ls_mysql.o -LE:/lua -lmysqlclient C:\Program Files (x86)\LuaRocks/lua5.1.dll -lMSVCR80
c:/mingw/bin/. ./lib/gcc/mingw32/8.2.0/. ./. ./. ./. ./mingw32/bin/ld.exe: cannot find -lmysqlclient
collect2.exe: error: ld returned 1 exit status

Error: Build error: Failed compiling module luasql/mysql.dll

где мне взять этот  "-lmysqlclient" ???  я не могу найти такого файла

P.S если есть возможность где можно сразу скомпилированную библиотеку взять?
 
Вы и не найдете такого файла, потому что файл должен называться mysqlclient.lib или mysqlclient.a и лежать, по идее, в мускуловской папке lib. Вы ж линкеру указали E:/lua, он там и роется. Впрочем, и то, что он в ошибке пишет -lmysqlclient, а не истинное имя, правильным не выглядит.
 
Вам под какую платформу нужна сборка? Windows или *nix?
 
Здесь можно скачать скомпилиные библиотеки. В 17 посте описаны танцы для подключения.
 
Цитата
Николай написал:
Здесь  можно скачать скомпилиные библиотеки. В 17 посте описаны танцы для подключения.
спасибо большое, завелось) проморгал я эту тему
 
Здравствуйте. хочу поднять тему. В прошлый раз я использовал готовую сборку которую предложили чуть выше, но сейчас мне нужно собрать саому
что я сделал

1. Скачал mysql server 8.0 закинул папки lib и include в c:\external
2. Скачал последний luarocks 3.5.0
3. скачал библиотеки lua 3.5.6 winx64 отсюда  http://luabinaries.sourceforge.net/download.html и поместил все в папку с luarocks

пробую запустить luarocks install luasql-mysql из командной строки visual studio x64
Получаю:



Код
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>luarocks install luasql-mysql
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec
Cloning into 'luasql'...
remote: Enumerating objects: 149, done.
remote: Counting objects: 100% (149/149), done.
remote: Compressing objects: 100% (99/99), done.
Receiving objects:  87% (130/149)sed 72 (delta 36), pack-reused 0 eceiving objects:  86% (129/149)
Receiving objects: 100% (149/149), 104.13 KiB | 423.00 KiB/s, done.
Resolving deltas: 100% (72/72), done.
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


luasql-mysql 2.6.0-1 depends on lua >= 5.1 (5.3-1 provided by VM)
cl /nologo /MD /O2 -c -Fosrc/luasql.obj -IC:\luarocks/include src/luasql.c -Ic:/external/include
luasql.c
cl /nologo /MD /O2 -c -Fosrc/ls_mysql.obj -IC:\luarocks/include src/ls_mysql.c -Ic:/external/include
ls_mysql.c
link -dll -def:mysql.def -out:luasql/mysql.dll c:\luarocks/lib/lua53.lib src/luasql.obj src/ls_mysql.obj -libpath:c:/external mysqlclient.lib
Microsoft (R) Incremental Linker Version 14.25.28614.0
Copyright (C) Microsoft Corporation.  All rights reserved.

   Создается библиотека luasql\mysql.lib и объект luasql\mysql.exp
LINK : warning LNK4098: библиотека по умолчанию "LIBCMT" конфликтует с использованием других библиотек; используйте /NODEFAULTLIB:library
mysqlclient.lib(my_init.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_RegCloseKey в функции "bool __cdecl win32_have_tcpip(void)" (?win32_have_tcpip@@YA_NXZ)
mysqlclient.lib(my_init.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_RegEnumValueA в функции "void __cdecl win_init_registry(void)" (?win_init_registry@@YAXXZ)
mysqlclient.lib(my_init.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_RegOpenKeyExA в функции "bool __cdecl win32_have_tcpip(void)" (?win32_have_tcpip@@YA_NXZ)
mysqlclient.lib(charset.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp___std_init_once_begin_initialize в функции "void __cdecl std::call_once<void (__cdecl&)(void)>(struct std::once_flag &,void (__cdecl&)(void))" (??$call_once@A6AXXZ$$V@std@@YAXAEAUonce_flag@0@A6AXXZ@Z)
mysqlclient.lib(charset.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp___std_init_once_complete в функции "void __cdecl std::call_once<void (__cdecl&)(void)>(struct std::once_flag &,void (__cdecl&)(void))" (??$call_once@A6AXXZ$$V@std@@YAXAEAUonce_flag@0@A6AXXZ@Z)
mysqlclient.lib(common.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_EqualSid в функции "public: bool __cdecl Sid::operator==(class Sid const &)" (??8Sid@@QEAA_NAEBV0@@Z)
mysqlclient.lib(common.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_GetTokenInformation в функции "public: __cdecl Sid::Sid(void *)" (??0Sid@@QEAA@PEAX@Z)
mysqlclient.lib(common.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_IsValidSid в функции "public: bool __cdecl Sid::is_valid(void)const " (?is_valid@Sid@@QEBA_NXZ)
mysqlclient.lib(common.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp_LookupAccountNameW в функции "public: __cdecl Sid::Sid(wchar_t const *)" (??0Sid@@QEAA@PEB_W@Z)
luasql\mysql.dll : fatal error LNK1120: неразрешенных внешних элементов: 9

Error: Build error: Failed compiling module luasql/mysql.dll




что ему надо? мне нужно скомпилить именно dll соотстветсвенно чтобы из квика подцепилось. Подскажите пожалуйста куда дальше копать
 
Линкер ругается на разные билды подцепляемых библиотек. Попробуйте скомпилировать Lua.
 
Аналогичная беда, не могу собрать библиотеку для mysql
1. Скачал mysql server 8.0 закинул папки сервера lib и include в c:\external
2. Скачал последний luarocks 3.8.0
3. скачал библиотеки lua 3.4.2 winx64 отсюда  http://luabinaries.sourceforge.net/download.html lua-5.4.2_Sources.zip ; lua-5.4.2_Win64_bin.zip ; lua-5.4.2_Win64_dllw6_lib.zip и поместил все в папку c:\lua54

Configuration:
  Lua:
     Version    : 5.4
     Interpreter: c:\lua54/lua54.exe (ok)
     LUA_DIR    : c:\lua54 (ok)
     LUA_BINDIR : c:\lua54 (ok)
     LUA_INCDIR : c:\lua54/include (ok)
     LUA_LIBDIR : c:\Lua54 (not found)
                  ****************************************
                  Use the command

                     luarocks config variables.LUA_LIBDIR <dir>

                  to fix the location
                  ****************************************

  Configuration files:
     System  : C:/Program Files/luarocks/config-5.4.lua (not found)
     User    : C:/Users/user/AppData/Roaming/luarocks/config-5.4.lua (ok)

  Rocks trees in use:
     C:\Users\user\AppData\Roaming/luarocks ("user")



08.01.2022  00:44    <DIR>          include
12.01.2021  20:35            92 678 liblua54.a
12.01.2021  20:35           356 234 lua54.dll
12.01.2021  20:38           122 006 lua54.exe
26.06.2012  21:36               392 LUABINARIES
12.01.2021  20:38           299 268 luac54.exe
08.11.2021  18:37         4 102 820 luarocks-admin.exe
08.11.2021  18:37         4 102 799 luarocks.exe
10.11.2020  23:54             3 146 Makefile
13.11.2020  18:42               151 README
08.01.2022  00:44    <DIR>          src
12.01.2021  20:38           125 374 wlua54.exe

Какую LUA_LIBDIR  ему надо?? Откуда ее брать?? liblua54.a в папку положил...
 
Цитата
Vitaliy написал:

3. скачал библиотеки lua 3.4.2 winx64 отсюда   http://luabinaries.sourceforge.net/download.html  lua-5.4.2_Sources.zip ; lua-5.4.2_Win64_bin.zip ; lua-5.4.2_Win64_dllw6_lib.zip и поместил все в папку c:\lua54
Скачал и скомпилировал lua 5.3.6 добился, что все видит
 
Теперь имею ошибки:
ls_mysql.obj : error LNK2019: ссылка на неразрешенный внешний символ _luaL_unref в функции _conn_close.
c:\Lua53\liblua53.a : warning LNK4272: тип компьютера библиотеки "x64" конфликтует с типом целевого компьютера "x86"
c:\external\mysqlclient.lib : warning LNK4272: тип компьютера библиотеки "x64" конфликтует с типом целевого компьютера "x86"
luasql\mysql.dll : fatal error LNK1120: неразрешенных внешних элементов: 58

Windows x64, MySQL x64
https://luarocks.org/releases/luarocks-3.8.0-windows-64.zip
lua-5.3.6_Win64_dllw6_lib.zip и lua-5.3.6_Win64_bin.zip тоже х64
Что не так? Что делать?
 
Vitaliy, все же в ошибках написано, собирается под x86, либу кладете для x64.
 
Цитата
Anton написал:
собирается под x86, либу кладете для x64
Вот и не понятно мне, все скачено под 64. Почему 32 собирает???
пробую собрать через "x64 Native Tools Command Prompt for VS 2022" - та же ошибка
Не могу понять, что ему не так... где 32 затесалось
 
Цитата
Vitaliy написал:
Почему 32 собирает???
В проекте стоит конфигурация Win32 скорей всего. Я про эту автоматику ничего не знаю, я вижу ошибки линкера, смотрите, что там этот луарокс вам наконфигурировал.
 
Если я правильно помню luasql от keplerproject под win32. Возьмите сборку под x64, хотя бы от swerg https://github.com/swerg/qlua-luasql
Либо сами внесите изменения.

И соберите через make или прямо в VC.
 
Цитата
Nikolay написал:
от swerg  https://github.com/swerg/qlua-luasql ... прямо в VC
mysql.dll получил
а вот luasql.mysql не нашел в папке
Что не так?
 
Цитата
но на выходе только mysql.dll, как получить  luasql.mysql

Так вам и нужна mysql.dll
Просто ее надо положить в папку luasql внутри quik, и тогда, по правилам библиотек Lua, возьмётся библиотека luasql/mysql.dll при загрузке require("luasql.mysql ")
Страницы: 1
Читают тему
Наверх