在 Windows 上使用 Emscripten 和 CMake 编译 GLFM 的问题

Issues compiling GLFM with Emscripten and CMake on Windows

本文关键字:编译 CMake GLFM 问题 Emscripten Windows      更新时间:2023-10-16

我正在尝试使用emscripten和cmake编译GLFM。我按照 GitHub 页面上的说明进行操作,并且生成所有项目文件的 cmake 命令可以正常工作(除了一些弃用警告(,但是当我输入行cmake --build .时,我会收到错误。

以下是整个输出:

E:emprojglfmbuildemscripten>cmake --build .
Microsoft (R) Build Engine version 15.6.85.37198 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 4/27/2018 3:21:04 PM.
Project "E:emprojglfmbuildemscriptenALL_BUILD.vcxproj" on node 1 (default targets).
Project "E:emprojglfmbuildemscriptenALL_BUILD.vcxproj" (1) is building "E:emprojglfmbuildemscriptenZERO_CHECK
.vcxproj" (2) on node 1 (default targets).
InitializeBuildStatus:
  Creating "Win32DebugZERO_CHECKZERO_CHECK.tlogunsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  All outputs are up-to-date.
FinalizeBuildStatus:
  Deleting file "Win32DebugZERO_CHECKZERO_CHECK.tlogunsuccessfulbuild".
  Touching "Win32DebugZERO_CHECKZERO_CHECK.tlogZERO_CHECK.lastbuildstate".
Done Building Project "E:emprojglfmbuildemscriptenZERO_CHECK.vcxproj" (default targets).
Project "E:emprojglfmbuildemscriptenALL_BUILD.vcxproj" (1) is building "E:emprojglfmbuildemscriptenglfm.vcxpr
oj" (3) on node 1 (default targets).
InitializeBuildStatus:
  Touching "glfm.dirDebugglfm.tlogunsuccessfulbuild".
CustomBuild:
  All outputs are up-to-date.
ClCompile:
  C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.13.26128binHostX86x86CL.exe /c /IE
  :emprojglfminclude /IE:emprojglfmsrc /nologo /W1 /WX- /diagnostics:classic /O2 /Oy- /D "CMAKE_INTDIR="Debug""
   /D _MBCS /Gm- /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"glfm.dirDebug\" /Fd"glfm.dirDebugglfm.
  pdb" /Gd /TC /analyze- /FC /errorReport:queue  -g -Weverything -Wwrite-strings -Wno-padded -Wno-covered-switch-defaul
  t E:emprojglfmsrcglfm_platform_emscripten.c
cl : Command line error D8021: invalid numeric argument '/Weverything' [E:emprojglfmbuildemscriptenglfm.vcxproj]
Done Building Project "E:emprojglfmbuildemscriptenglfm.vcxproj" (default targets) -- FAILED.
Done Building Project "E:emprojglfmbuildemscriptenALL_BUILD.vcxproj" (default targets) -- FAILED.

Build FAILED.
"E:emprojglfmbuildemscriptenALL_BUILD.vcxproj" (default target) (1) ->
"E:emprojglfmbuildemscriptenglfm.vcxproj" (default target) (3) ->
(ClCompile target) ->
  cl : Command line error D8021: invalid numeric argument '/Weverything' [E:emprojglfmbuildemscriptenglfm.vcxproj]
    0 Warning(s)
    1 Error(s)
Time Elapsed 00:00:00.68

它的抱怨是/Weverything论点。我查看了项目的 CMakeLists.txt 文件,看起来只有在活动编译器为 clang 时才应该使用此命令。这可能是问题所在吗?它正在使用视觉工作室作为主机,它应该这样做吗?

它说需要 emscripten 1.35.0,这就是我正在使用的确切版本。

我还按照说明让它在Android Studio中运行,它工作顺利。

提前感谢您的帮助!

此问题的解决方案如下:

不要使用窗户。

我使用了 Ubuntu,除了安装现代版本的 cmake 之外,一切都非常顺利。搜索了一段时间后,可以在此处找到对我有用的方法:https://peshmerge.io/how-to-install-cmake-3-11-0-on-ubuntu-16-04/