старую ветку на ту-же тему можно удалить
---------------
Кто-нибуть пытался откомпилировать модуль
DBD::mysqlEmb под ActiveState perl ?
модуль как-бы должен поддерживать функционал mysql без установки сервера
---------
при сборке выдется ошибка:
Creating library blib\arch\auto\DBD\mysqlEmb\mysqlEmb.lib and object blib\arch\auto\DBD\mysqlEmb\mysqlEmb.exp
mysqlserver.lib(ut0ut.obj) : error LNK2019: unresolved external symbol __pctype referenced in function _ut_print_buf
mysqlserver.lib(dict0dict.obj) : error LNK2001: unresolved external symbol __pctype
mysqlserver.lib(data0data.obj) : error LNK2019: unresolved external symbol __pctype referenced in function _dtuple_check_typed_no_assert
mysqlserver.lib(ut0ut.obj) : error LNK2019: unresolved external symbol ___mb_cur_max referenced in function _ut_print_buf
mysqlserver.lib(dict0dict.obj) : error LNK2001: unresolved external symbol ___mb_cur_max
mysqlserver.lib(data0data.obj) : error LNK2001: unresolved external symbol ___mb_cur_max
mysqlserver.lib(mf_tempfile.obj) : error LNK2019: unresolved external symbol __environ referenced in function _create_temp_file
blib\arch\auto\DBD\mysqlEmb\mysqlEmb.dll : fatal error LNK1120: 3 unresolved externals
------------
Я использую следующие версии программ:
perl, v5.6.1 built for MSWin32-x86-multi-thread
mysql-4.0.17-win
DBD-mysql-3.0002
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
(из Microsoft Visual C++ .NET )
----------------
Вобщем есть пример (в комплекте с mysql выше указаной версии идет)
который коректно ликуеться и работает с mysqlserver.lib
(есть как под C++ так и под C)
при сборке этих проекта используються стандартные библеотеки
(не используеться ключ линковки /nodefaultlib)
а выше описанная програмка не хочет линковаться и все тут.
---------------
вот комманда линковки как выглядит:
D:\Perl\bin\perl.exe myld link -out:blib\arch\auto\DBD\mysqlEmb\mysqlEmb.dll -dll -nologo -nodefaultlib -release -libpath:"
D:/Perl\lib\CORE" -machine:x86 dbdimp.obj mysqlEmb.obj D:\Perl\lib\CORE\perl56.lib C:\mysql-new\Embedded\Static\release\mysqlserver.lib "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\oldnames.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\kernel32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\user32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\gdi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winspool.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\comdlg32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\advapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\shell32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\ole32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\oleaut32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\netapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\uuid.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\wsock32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\mpr.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winmm.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\version.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\odbc32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\odbccp32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\msvcrt.lib" -def:mysqlEmb.def
---------------
а как вы думаете в каких библеотеках могутбыть выше написаные имена?
вообщем я наугад разные стандартные библеотеки подключал
вобщемто слинковалось , не не работало после этого
выдавала ошибку навроде "обратилась по адресу 00000, память не может быть writen"
----------------
А>Если ну совсем ничего не помогает... Возьми
А>просто поищи во всех файлах студии (или чего там еще)
А>и проекта имена нужных тебе функций. По идее должны быть
А>найдены либо dll, либо lib, либо obj. В этом случае ты, по крайней
А>мере, будешь знать где они находятся. Попробуй слинковать
А>с этими либами или прикрути dll (если будет найдена dll).
А>Потом в гугл и прямо поиск по имени функции и/или dll, obj и .т.д.
А>Если косяк имел есто в глобальных масштабах то найдешь ответ,
А>если нет, о бубен в руки и по кругу...
пробовал все это.
Сижу с бубном уже давно.
в инете вообще информации нет
какото русский этим занимался но его емайла не обнаружено
(он в mysql работает)
----------------
история вопроса:
по данным компании mysql
mysqlEmb был разработан сторонней компанией
был включен в некотые 4-е релиза mysql под виндовс
в новых релизах не обнаружен
—
mysqlEmb в виде собраного модуля
в инете не обнаружен
------------------
Заранее спасибо.
А>Так ты пытаешься mysqlEmb от одной версии собрать с mysql другой версии?
А>Может в этом засада?
А>А этот, mysql, он в исходниках?
А>Тогда бери целиком ту версию mysql, которая с mysqlEmb и собирай там всё — и embedded и те части mysql, которые ему нужны
вобщем mysqlEmb (полностю DBD::mysqlEmb) это модуль для perl-а который поддерживает весь функционал mysql без установки сервера
mysqlEmb обнаружен мой как часть DBD::mysql (драйвер mysql для perl-а)
точнее говаря исходники DBD::mysql можно скомпилить в специальном режиме для получения mysqlEmb
вот ссылка:
http://search.cpan.org/~capttofu/DBD-mysql-3.0002/
ище требуеться
http://www.activestate.com/Products/ActivePerl/?mp=1 ( v5.6.1 built for MSWin32-x86-multi-thread)
и
http://www.mysql.com/ (нужна mysql-4.0.17-win версия уж незнаю где ее найти...)
А>http://www.google.ru/search?hl=en&q=__mb_cur_max
А>Попробуй собрать программку, которую приводят в первой же ссылке.
А>Эфект тот же?
А>Оно?
затрудняюся ответить...
вродебы в моем случае cygwin.dll не используеться
с другой стороны cygwin.dll идет в комплекте с mysql
вобщем темная история
то что фича рабочая говорит что я нормально компилю
пример из комплекта mysql
и я нормально скомпилил серверную версию драйвера
которая заработала (DBD::mysql)
----
короче говаря като не дружат perl-овый беблиотеки и mysqlserver.lib