【发布时间】:2020-07-06 11:05:36
【问题描述】:
我正在尝试在 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?
【问题讨论】:
-
我认为
cmake -G Ninja必须是cmake -GNinja或cmake -G "Ninja"。 -
@JesperJuhl 无论如何它都可以工作,它说构建文件已写入。当我写
ninja aseprite时出现错误
标签: c++ visual-c++ cmake ninja