用msys-cl编译64位x265,运行make-Makefiles-64bit.sh时报错:64 bit target not set, please launch 'visual studio command prompt' and run '..\vcvarsal

1.打开make-Makefiles-64bit.sh文件,并用ai解释该文件意思:

这个脚本是一个用于在MSYS bash shell环境下配置和生成Visual Studio构建项目的shell脚本。它的主要目的是为了便于在Windows系统上集成FFmpeg时设置必要的环境变量,并使用CMake生成项目文件。以下是对脚本各个部分的详细解释:

  1. #!/bin/sh:指定此脚本使用的shell解释器,这里是sh,即Bourne shell。

  2. 注释部分解释了脚本的作用:生成带有必需环境变量设置的Visual Studio构建,这对于FFmpeg的集成非常有用。并提示应在MSYS的bash shell中运行此脚本。

  3. target_processor='amd64':定义一个变量target_processor,其值为'amd64',表示目标处理器架构是64位。

  4. path=$(which cl):获取编译器(cl.exe)的路径,并将其存储在变量path中。which cl命令会搜索环境变量$PATH列出的目录来查找名为cl的程序。

  5. 接下来的if语句检查是否可以调用cl(Visual C++编译器)。如果无法调用,脚本会输出一条消息,指示用户需要从“Visual Studio命令提示符”运行..\vcvarsall.bat amd64来设置环境变量,然后从那里启动MSYS bash shell。

  6. 第二个if语句检查path变量是否包含target_processor字符串(即"amd64"),以确认是否为目标设置了64位编译环境。如果没有正确设置,脚本会给出相应的错误信息并退出。

  7. cmake命令用于生成NMake Makefiles。它指定了许多编译选项,如预处理宏、警告级别等,并指向源代码所在的相对路径(../../source)。

  8. 最后,如果生成了Makefile,则执行nmake命令进行编译。

这个脚本确保了在尝试使用CMake和nmake构建项目之前,已正确配置好支持64位目标的Visual Studio编译环境。

2.由上可知,报错为第二个if判断出错,修改make-Makefiles-64bit.sh文件,这第二个if语句中添加path路径的打印

打印结果:c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/HostX64/x64/cl

3.在VS2022的cl.exe路径中已经不包含‘amd64’字符串了,所以第二个if语句可以删掉

删掉掉make-Makefiles-64bit.sh文件的第二个if代码块即可编译成功

总结:VS2022+msys-cl编译64位x265,需删掉make-Makefiles-64bit.sh文件的第二个if代码块才能编译成功

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐