强制 CMake 将 MSVC 与忍者一起使用
Force CMake to use MSVC with Ninja
我正在尝试在 64 位 Windows 上编译 aseprite 并使用 CMake 和 Ninja 编译它
当我在 运行 CMake 时,我看到它正在使用 MINGW64 来制作构建文件,尽管提到不支持 MinGW。我试着写 -DCMAKE_IGNORE_PATH=C:\MinGW\bin
但它似乎忽略了它,当 运行 ninja aseprite
我得到一个错误
一代:
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\deps\skia -DSKIA_LIBRARY_DIR=C:\deps\skia\out\Release-x64 -DCMAKE_IGNORE_PATH=C:\mingw64\bin -G Ninja ..
我检查过,所有依赖项都存在
错误:
FAILED: bin/modp_b64_gen.exe
cmd.exe /C "cd . && C:\mingw64\bin\gcc.exe -O2 -g -DNDEBUG laf/third_party/CMakeFiles/modp_b64_gen.dir/stringencoders/src/arraytoc.c.obj laf/third_party/CMakeFiles/modp_b64_gen.dir/stringencoders/src/modp_b64_gen.c.obj -o bin\modp_b64_gen.exe -Wl,--out-implib,lib\libmodp_b64_gen.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 wsock32.lib ws2_32.lib && cd ."
gcc.exe: error: wsock32.lib: No such file or directory
gcc.exe: error: ws2_32.lib: No such file or directory
[563/1514] Building CXX object third_party/harfbuzz/CMakeFiles/harfbuzz.dir/src/hb-ot-layout.cc.obj
ninja: build stopped: subcommand failed.
我在github上看到一个issue,解决办法是从GCC改成MSVC,但是没有提到如何强制MSVC进行生成过程。
当我从 PATH 中删除 mingw64 时,它仍然以某种方式找到它,如果我删除该文件夹,它会抛出找不到 GCC 的错误。
如何在 CMake 上强制使用 MSVC?
我通过将环境变量 CC
更改为 cl
来解决这个问题
set CC=cl
我正在尝试在 64 位 Windows 上编译 aseprite 并使用 CMake 和 Ninja 编译它
当我在 运行 CMake 时,我看到它正在使用 MINGW64 来制作构建文件,尽管提到不支持 MinGW。我试着写 -DCMAKE_IGNORE_PATH=C:\MinGW\bin
但它似乎忽略了它,当 运行 ninja aseprite
我得到一个错误
一代:
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\deps\skia -DSKIA_LIBRARY_DIR=C:\deps\skia\out\Release-x64 -DCMAKE_IGNORE_PATH=C:\mingw64\bin -G Ninja ..
我检查过,所有依赖项都存在
错误:
FAILED: bin/modp_b64_gen.exe
cmd.exe /C "cd . && C:\mingw64\bin\gcc.exe -O2 -g -DNDEBUG laf/third_party/CMakeFiles/modp_b64_gen.dir/stringencoders/src/arraytoc.c.obj laf/third_party/CMakeFiles/modp_b64_gen.dir/stringencoders/src/modp_b64_gen.c.obj -o bin\modp_b64_gen.exe -Wl,--out-implib,lib\libmodp_b64_gen.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 wsock32.lib ws2_32.lib && cd ."
gcc.exe: error: wsock32.lib: No such file or directory
gcc.exe: error: ws2_32.lib: No such file or directory
[563/1514] Building CXX object third_party/harfbuzz/CMakeFiles/harfbuzz.dir/src/hb-ot-layout.cc.obj
ninja: build stopped: subcommand failed.
我在github上看到一个issue,解决办法是从GCC改成MSVC,但是没有提到如何强制MSVC进行生成过程。 当我从 PATH 中删除 mingw64 时,它仍然以某种方式找到它,如果我删除该文件夹,它会抛出找不到 GCC 的错误。
如何在 CMake 上强制使用 MSVC?
我通过将环境变量 CC
更改为 cl
set CC=cl