msys-cl编译报错:64 bit target not set, please launch ‘visual studio command prompt‘ and run ‘..\vcvarsal
注释部分解释了脚本的作用:生成带有必需环境变量设置的Visual Studio构建,这对于FFmpeg的集成非常有用。总结:VS2022+msys-cl编译64位x265,需删掉make-Makefiles-64bit.sh文件的第二个if代码块才能编译成功。2.由上可知,报错为第二个if判断出错,修改make-Makefiles-64bit.sh文件,这第二个if语句中添加path路径的打印。:
用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生成项目文件。以下是对脚本各个部分的详细解释:
:指定此脚本使用的shell解释器,这里是sh,即Bourne shell。
注释部分解释了脚本的作用:生成带有必需环境变量设置的Visual Studio构建,这对于FFmpeg的集成非常有用。并提示应在MSYS的bash shell中运行此脚本。
target_processor='amd64'
:定义一个变量target_processor
,其值为'amd64'
,表示目标处理器架构是64位。
path=$(which cl)
:获取编译器(cl.exe)的路径,并将其存储在变量path
中。which cl
命令会搜索环境变量$PATH列出的目录来查找名为cl
的程序。接下来的
if
语句检查是否可以调用cl
(Visual C++编译器)。如果无法调用,脚本会输出一条消息,指示用户需要从“Visual Studio命令提示符”运行..\vcvarsall.bat amd64
来设置环境变量,然后从那里启动MSYS bash shell。第二个
if
语句检查path
变量是否包含target_processor
字符串(即"amd64"),以确认是否为目标设置了64位编译环境。如果没有正确设置,脚本会给出相应的错误信息并退出。
cmake
命令用于生成NMake Makefiles。它指定了许多编译选项,如预处理宏、警告级别等,并指向源代码所在的相对路径(../../source
)。最后,如果生成了
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代码块才能编译成功
更多推荐
所有评论(0)