Скомпилировать GLEW с CMake и Visual Studio 2019? - PullRequest
0 голосов
/ 23 января 2020

Я попытался скомпилировать (собрать) исходный код GLEW с помощью CMake и Visual Studio 2019 для получения двоичных файлов. В каталоге (диске) C:\ я создал папку GL, а внутри нее разархивировал glew-2.1.0. В C:\GL\ я создал папку build. Поскольку я нашел файл "CMakeLists.txt" в 3 папках,

  1. C: \ GL \ glew-2.1.0 \ build \ conan \ test_package
  2. C : \ GL \ glew-2.1.0 \ build \ cmake
  3. C: \ GL \ glew-2.1.0 \ build \ cmake \ testbuild

Я протестировал все 3 пути в текстовом поле «Обзор источника ...» в CMake. В текстовое поле «Browse Build ...» я вставил C:/GL/build. Во всех 3 тестах CMake ответил:

"CMake Error: The source 
"C:/GL/glew-2.1.0/build/cmake/CMakeLists.txt" 
does not match the source
"C:/GL/glew-2.1.0/build/cmake/testbuild/CMakeLists.txt"
used to generate cache.  Re-run cmake with a different source directory."

, то есть «файл CMakeLists.txt во 2-м пути не соответствует файлу с тем же именем в 3-м пути».

Ответы [ 2 ]

1 голос
/ 23 января 2020

Если вы измените исходный каталог верхнего уровня, в котором работает CMake, вы должны сначала удалить ваш кэш CMake ( Файл > Удалить кэш в CMake GUI) и запустите CMake с нуля, чтобы избежать этих ошибок.

Вы пробовали инструкции CMake на GLEW Github здесь ? Попробуйте запустить эти команды из командной строки:

> cd C:/GL/glew-2.1.0/build
> cmake ./cmake

Хотя это отличается от типичной идиомы CMake для сборки из исходного кода, именно так GLEW намеревается создать систему сборки. Итак, в вашей системе:

  • Исходный каталог: C:/GL/glew-2.1.0/build/cmake
  • Каталог сборки: C:/GL/glew-2.1.0/build

Обратите внимание, что инструкции по сборке GLEW предупреждают о использование CMake для построения этого репо:

Сборка cmake в основном поддерживается спонсором. Из-за множества вариантов использования это поддерживается с максимальной отдачей. Приветствуются запросы на извлечение.

Таким образом, вам, возможно, повезет больше, если вы будете придерживаться типичных Windows подходов к сборке, рекомендованных здесь .

0 голосов
/ 23 января 2020

Согласно ответу на комментарий г-на squareskittles к моему комментарию к его ответу, который я успешно протестировал, правильный ответ заключается в том, что папка для размещения двоичных файлов должна быть C: / GL / glew-2.1.0 / build или любая папка, созданная вами в glew-2.1.0. Это особенность глю, хотя. С GLFW вы можете создать удобную папку для двоичных файлов за ее пределами. Однако, согласно правке Mr.squareskittles в его ответе, который я успешно протестировал, если вы удаляете Cashe (в CMake GUI нажмите File> Delete Cashe), вы можете создать вспомогательную папку для двоичных файлов вне glew-2.1.0. С уважением.

...