工作需要libzimg库,下载源代码下面有一个"_msvc"的子目录,都已经做好适配了。但问题是,这个适配是适配当前的Visual studio C++的版本的,而一些低一级的版本就老报错。要解决这个问题,其实也简单,这个需要CMake(CMake原理)。而libzimg提供的是经典一套的autoconf工具链。所以我没有功夫去研究CMake了,还是直接用的nmake解决问题。
命令行都是相通的。
工作场景:libzimg最新版本
VC2015 Express,Windows 7 SDK
首先构筑环境设置
一般在VS安装以后,会存在一个环境变量:VSnnnCOMMTOOLS(nnn版本号,VS2015就是240),用 set vs命令可以查看具体版本号:
C:\Qt\zimg-2.8>set vs
VS140COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
VSSDK140Install=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\
C:\Qt\zimg-2.8>dir "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat"
驱动器 C 中的卷是 Windows 7 SSD
卷的序列号是 44D7-DBAA
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC 的目录
2016/06/09 22:25 3,337 vcvarsall.bat
1 个文件 3,337 字节
0 个目录 3,597,721,600 可用字节
C:\Qt\zimg-2.8>
里面有一个 vcvarsall.bat 文件。编译哪个平台,就设置里面的参数。默认x86是32位的,如果要64就是 call vcvarsall.bat x64,具体去看面的源代码。如果没有,会出现LIBCMT.lib没有找到的问题
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 14.
0\Common7\Tools\\..\..\vc\bin\link.EXE"”: 返回代码“0x450”
另外需要添加 PATH : PATH=%PATH%;%VS140COMNTOOLS%\..\..\vc\bin
VS2017环境设置看这里:https://blog.youkuaiyun.com/harborian/article/details/126297812
nmake的一些点滴:
https://learn.microsoft.com/zh-cn/cpp/build/reference/special-nmake-macros
nmake和make有一些不兼容的地方:
- make的子目录递归 make -C subdir 可以搜索subdir下的Makefile,而nmake的-C参数不是这个意义,需要自己的文件里 CD subsir,nmake -F makefile 进行处理。
- make文件内搜索子目录路径。make用 VPATH,nmake使用{src1:src2:}。
- 搜索子目录可以带入规则
libzi

文章讲述了在不使用CMake的情况下,如何通过nmake和Makefile手动编译libzimg库,特别是在VisualStudio2015环境下,解决版本兼容性问题,以及如何处理编译错误和设置环境变量。作者还分享了关于nmake的使用技巧和注意事项。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



