CMD中使用NMAKE编译libharu提示命令未识别如何解决
问题原因
NMAKE是Visual Studio自带的MSVC工具链组件,不会自动添加到系统全局环境变量中,直接打开系统默认CMD执行命令时,系统无法定位到NMAKE可执行文件,就会触发该报错。
正确操作步骤
- 加载MSVC编译环境
不要直接启动系统CMD,在Windows开始菜单找到对应Visual Studio版本的工具目录,根据你项目的目标编译架构选择对应的原生工具命令行:- 目标平台为x86:启动
x86 Native Tools Command Prompt for VS 20xx(20xx替换为你实际安装的VS版本号,比如2022、2019) - 目标平台为x64:启动
x64 Native Tools Command Prompt for VS 20xx
启动后在命令行输入nmake /?,如果能正常打印NMAKE的版本和帮助信息,说明环境加载成功。
- 目标平台为x86:启动
- (推荐)通过CMake生成适配NMAKE的构建配置
直接使用官方提供的Makefile脚本容易出现路径、依赖适配问题,推荐用CMake生成配置:- 进入libharu源码根目录,新建名为
build的空文件夹,通过命令行进入该文件夹 - 执行CMake配置命令:
参数说明:cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../output-G "NMake Makefiles":指定生成NMAKE可用的Makefile文件-DCMAKE_BUILD_TYPE=Release:编译Release版本库,需要调试版本可替换为Debug-DCMAKE_INSTALL_PREFIX=../output:指定编译完成后,头文件、静态/动态库的输出存放路径
- 进入libharu源码根目录,新建名为
- 执行编译与安装
配置无报错后,依次执行以下两条命令:
执行完成后,你之前指定的output目录下就会生成可直接在VS项目中引用的lib、dll文件和对应头文件。nmake nmake install
补充说明
- 如果坚持使用官方wiki提到的Makefile.msvc脚本,同样需要在上述加载了MSVC环境的命令行中执行,注意执行命令时的路径要处于libharu源码根目录,执行命令为
nmake -f script/Makefile.msvc,不要进入script目录后再执行,否则会因为相对路径错误导致构建失败。 - 编译时选择的命令行架构必须和你VS项目的目标平台一致,比如项目是x64平台就不能用x86的原生工具命令行编译,否则后续链接库时会出现架构不匹配的错误。
- 如果CMake配置阶段提示找不到zlib、libpng依赖,可以在CMake命令中追加参数指定对应依赖的头文件、库文件路径,也可以提前将依赖文件放到MSVC环境的默认搜索路径下。
内容的提问来源于stack exchange,提问作者dragonitebrian1024
相关产品推荐
相关产品推荐

