Проблемы компиляции GLFM с Emscripten и CMake в Windows - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь скомпилировать GLFM , используя emscripten и cmake. Я следовал инструкциям на странице GitHub, и команда cmake для генерации всех файлов проекта работает без сбоев (кроме некоторых предупреждений об устаревании), но когда я ввожу строку cmake --build ., я получаю ошибки.

Вот весь вывод:

E:\emproj\glfm\build\emscripten>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:\emproj\glfm\build\emscripten\ALL_BUILD.vcxproj" on node 1 (default targets).
Project "E:\emproj\glfm\build\emscripten\ALL_BUILD.vcxproj" (1) is building "E:\emproj\glfm\build\emscripten\ZERO_CHECK
.vcxproj" (2) on node 1 (default targets).
InitializeBuildStatus:
  Creating "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  All outputs are up-to-date.
FinalizeBuildStatus:
  Deleting file "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Touching "Win32\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Done Building Project "E:\emproj\glfm\build\emscripten\ZERO_CHECK.vcxproj" (default targets).

Project "E:\emproj\glfm\build\emscripten\ALL_BUILD.vcxproj" (1) is building "E:\emproj\glfm\build\emscripten\glfm.vcxpr
oj" (3) on node 1 (default targets).
InitializeBuildStatus:
  Touching "glfm.dir\Debug\glfm.tlog\unsuccessfulbuild".
CustomBuild:
  All outputs are up-to-date.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86\CL.exe /c /IE
  :\emproj\glfm\include /IE:\emproj\glfm\src /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.dir\Debug\\" /Fd"glfm.dir\Debug\glfm.
  pdb" /Gd /TC /analyze- /FC /errorReport:queue  -g -Weverything -Wwrite-strings -Wno-padded -Wno-covered-switch-defaul
  t E:\emproj\glfm\src\glfm_platform_emscripten.c
cl : Command line error D8021: invalid numeric argument '/Weverything' [E:\emproj\glfm\build\emscripten\glfm.vcxproj]
Done Building Project "E:\emproj\glfm\build\emscripten\glfm.vcxproj" (default targets) -- FAILED.

Done Building Project "E:\emproj\glfm\build\emscripten\ALL_BUILD.vcxproj" (default targets) -- FAILED.


Build FAILED.

"E:\emproj\glfm\build\emscripten\ALL_BUILD.vcxproj" (default target) (1) ->
"E:\emproj\glfm\build\emscripten\glfm.vcxproj" (default target) (3) ->
(ClCompile target) ->
  cl : Command line error D8021: invalid numeric argument '/Weverything' [E:\emproj\glfm\build\emscripten\glfm.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.68

Его жалоба с аргументом /Weverything. Я посмотрел в файле проекта CMakeLists.txt, и похоже, что эта команда должна использоваться, только если активный компилятор - clang. Может ли это быть проблемой? Он использует Visual Studio в качестве хоста, должен ли он это делать?

В нем говорится, что требуется emscripten 1.35.0, и именно эту версию я использую.

Я также следовал инструкциям, чтобы запустить его в Android Studio, и он работал без проблем.

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 29 апреля 2018

Решение этой проблемы заключается в следующем:

Не используйте Windows.

Я использовал Ubuntu, и все прошло отлично, кроме установки современной версии cmake. После некоторого времени поиска способ сделать то, что сработало для меня, можно найти здесь: https://peshmerge.io/how-to-install-cmake-3-11-0-on-ubuntu-16-04/

...