如何在 64 位 Windows 7 上构建 mym(matlab 到 mysql)

如何在 64 位 Windows 7 上构建 mym(matlab 到 mysql)

有人能得到我的m(http://sourceforge.net/projects/mym/) 在 64 位 Win7 机器上构建?如果可以的话,您介意发布或链接您的步骤吗?

我的详细信息:Windows 7 Enterprise,64 位操作系统 MATLAB 版本 7.13.0.564 (R2011b) Microsoft VS 2010 Ver. 10.0.30319.1 MySQL Ver 14.14 Distrib 5.5.21,适用于 Win64 (x86)

我运行了“mex -setup”,并且能够编译并运行“yprime.c”

我下载并安装了 zlib(http://www.zlib.net/),这正是 mym 的自述文件所要求做的。

这是我正在使用的 mex 命令:

mex -IC:\zlib-1.2.6 -I'C:\Program Files\MySQL\Connector C 6.0.2\include' ...
      -L'C:\Program Files\MySQL\Connector C 6.0.2\lib\opt' ...
      -L'C:\zlib-1.2.6' -lzlib -lmysqlclient mym.cpp

我收到一堆“已在 MSVCRT.lib 中定义”错误消息。例如:

LIBCMT.lib(tidtable.obj) : error LNK2005: _encoded_null already defined in MSVCRT.lib(MSVCR100.dll) 
LIBCMT.lib(invarg.obj) : error LNK2005: _set_invalid_parameter_handler already defined in MSVCRT.lib(MSVCR100.dll) 
LIBCMT.lib(crt0dat.obj) : error LNK2005: _initterm_e already defined in MSVCRT.lib(MSVCR100.dll)

我承认我现在很困惑,而且万维网上也没有太多有用的信息。

更新:

根据我的笔记,下面是我为实现这个功能所采取的步骤(注意:我不再从事需要这个功能的项目,所以我希望我这样做之后事情没有改变)

  1. 如果尚未安装 32 位 MATLAB,请安装。(我相信我的系统需要 32 位 MATLAB,但我对此不是 100% 确定。)
  2. 下载 zlib 源代码 (http://www.zlib.net/)。我下载的版本是 1.2.6;源代码包含在名为 zlib126.zip 的 zip 存档中
  3. 解压 zlib 源代码并放置在所需位置 - 我将内容放在文件夹“C:\zlib 1.2.6”中
  4. 下载 zlib124_masm_obj.zip (http://www.findthatfile.com/search-37735452-hZIP/winrar-winzip-download-zlib124_masm_obj.zip.htm) (注意:在撰写这些笔记时构建 zlib 之后,我注意到有一个可用的 zlib125_masm_obj.zip。)
  5. 将 zip 存档中的目录“contrib\masmx86”的内容复制到目录“...\zlib 1.2.6\contrib\masmx86”目录(注意:此步骤是必要的,因为当我尝试构建 zlib 时,我收到有关缺少文件的错误消息。我不记得我是如何或在哪里找到解决方案的。我忘了记下网站。我在写这些笔记时找到了第 4 步中列出的链接。)
  6. 使用 Microsoft Visual Studio 2010 构建 zlib:a. 双击文件夹“...\zlib 1.2.6\contrib\vstudio\vc10\”中的 MVS 解决方案文件 zlibvc.sln 以启动 MVS2010。(注意:执行此操作时,解决方案 zlibvc 下列出了六个项目。)b. 构建项目。(注意:执行此操作时,只有项目 zlibvc 构建成功,但这是我唯一需要的。此外,我设置了项目属性,以便配置为发布版本而不是调试版本。)c. 验证文件夹“...\zlib 1.2.6\contrib\vstudio\vc10\x86\ZlibDllRelease”中是否生成了 zlibwapi.lib。
  7. 下载 mym (http://sourceforge.net/projects/mym/)。我安装的版本是 1.36。源代码包含在名为 mym_src_v1.36.zip 的 zip 存档中。
  8. 解压 mym 存档并将内容放在所需位置 - 我将内容放在文件夹 C:\Users\dossow1\Documents\MATLAB\mym_src_v1.36 中
  9. 将文件 msvc100opts.bat 从目录“C:\Program Files (x86)\MATLAB\R2011b\bin\win32\mexopts”复制到存储 mym 的目录。
  10. 编辑 msvc100opts.bat 文件,将选项“/NODEFAULTLIB:LIBCMTD”添加到“set LINKFLAGS”行。
  11. 启动 MATLAB,cd 到存储 mym 的目录,并使用以下命令编译 mym:

mex -f .\msvc100opts.bat -I'C:\zlib-1.2.6' -I'C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include' ... -L'C:\zlib-1.2.6\contrib\vstudio\vc10\x86\ZlibDllRelease' ... -L'C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\lib\opt' ... -llibmysql -lzlibwapi .\mym.cpp

  1. 执行以下操作之一:a. 将以下 DLL 复制到存储 mym 的目录:i. “...\zlib-1.2.6\contrib\vstudio\vc10\x86\ZlibDllRelease” 中的 zlibwapi.dll ii. “...\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\lib\opt” 中的 libmysql.dll b. 将 zlibwapi.dll 和 libmysql.dll 所在的目录添加到系统路径(通过控制面板 | 高级系统属性 | 环境变量 | 系统变量 | 路径)

现在 mym 就可以运行了!!

相关内容