mysql静态编译_VS2015静态编译MYSQL-Connector-C 开发环境1
2
3cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
vcvarsall.bat amd64# 选择架构:x86 amd64 amd64_x86
set PATH=D:\Qt\DevTools\perl\perl\bin;%PATH%# 设置Perl所在路径到环境变量
静态编译zlib1
2
3cd D:\test\zlib-1.2.11\
contrib\masmx86\bld_ml32.bat# 32位执⾏这个
contrib\masmx64\bld_ml64.bat# 64位执⾏这个
最后使⽤VS2015打开:D:\test\zlib-1.2.11\contrib\vstudio\vc14\zlibvc.sln
⽣成解决⽅案后进⼊:D:\test\zlib-1.2.11\contrib\vstudio\vc14\x64
zlibvc 是动态链接库,zlibstat 是静态链接库。
静态编译openssl1
2
3
4
5
6
7
8cd D:\test\openssl-1.0.2t
mysql下载的vs库放在那个文件里
perl Configure VC-WIN32 --prefix=D:\test\openssl# 32位架构
perl Configure VC-WIN64A --prefix=D:\test\openssl# 64位通⽤
ms\do_win64a
nmake -f ms\nt.mak# nt.mak⽤于⽣成静态lib库,ntdll.mak⽤于⽣成动态dll库
cd out32# out32/out32dll 进⼊静态/动态库⽣成⽬录
..\ms\test# 测试构建情况
nmake -f ms\nt.mak install# 安装到D:\test\openssl
静态编译MySQL-Connector1
2
3
4
5
6
7cd D:\test\mysql-connector-c-6.1.11-src\
mkdir build & cd build
cmake .. -G "Visual Studio 14 2015 Win64" -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -
DWITH_SSL="D:\test\openssl" -DOPENSSL_LIBRARY="D:\test\openssl\lib\libeay32.lib" -
DCRYPTO_LIBRARY="D:\test\openssl\lib\ssleay32.lib" -DCMAKE_INSTALL_PREFIX="D:\test\mysql"
msbuild LibMySQL.sln
# VS打开D:\test\mysql-connector-c-6.1.11-src\build\LibMySQL.sln可以⽣成Release解决⽅案
# 到D:\test\mysql-connector-c-6.1.11-src\build\libmysql\Release\mysqlclient.lib
测试静态编译的MySQL和OpenSSL项⽬
在VS2015中如下配置项⽬属性:项⽬属性 –> C/C++ –> 代码⽣成 –> 运⾏库 –> MT (D⽤于动态,T⽤于静态,带d的是debug模式的)
项⽬属性 –> VC++ –> 包含⽬录 -> D:\test\mysql\include;D:\test\openssl\include
项⽬属性 –> VC++ –> 库⽬录配置 -> D:\test\mysql\lib;D:\test\openssl\lib
项⽬属性 –> 链接器 –> 输⼊ –> 附加依赖项 –> libeay32.lib;ssleay32.lib;mysqlclient.lib
测试例⼦:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#include
#include
#include
#include
#include
using namespace std;
int main()
{
cout << "Hello World!" << endl;
cout << "Hello!" << endl;
SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms();
printf("MySQL client version: %s\n", mysql_get_client_info());
system("PAUSE");
return 0;
}
其他技巧MySQL官⽅的动静态库
打开你的MySQL安装⽬录C:\Soft\mysql-5.7.28-winx64\lib\,libmysql.lib和libmysql.dll为动态库,mysqlclient.lib为静态库。
检查库⽂件是动态还是静态库
可以⽤7zip打开库⽂件。如果⾥⾯内容后缀显⽰为xxx.dll则为动态库的导⼊⽂件,后缀显⽰为xxx.obj则为VS的静态库。后缀显⽰为xxx.o 则为GCC的静态库。
转换VS的.lib/.dll动态库为GCC的.a动态库
1
2
3reimp -d libmysql.lib# ⽣成libmysql.def的⽼⽅法,不推荐
pexports libmysql.dll > libmysql.def# ⽣成libmysql.def的新⽅法
dlltool -k -D libmysql.dll -d libmysql.def -l libmysql.a# ⽣成libmysql.a

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。