Компилировать статическую библиотеку glew с помощью cmake и msbuild? - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь скомпилировать GLEW 2.1.0 с cmake GUI в Windows 10 в качестве статической библиотеки. Все работает и компиляция завершается, но я не могу получить статические библиотеки. Скомпилированные библиотеки glew32d.lib и glew32.dll. Я почти уверен, что должно быть s перед .lib для статических библиотек. Если я пытаюсь связать glew32d.lib, это требует DLL.

Это не то, что я хочу. Я хочу статически скомпилировать библиотеки с помощью исполняемого файла, и я строю с помощью CL и / MT и / MTd (для отладки), поэтому мне нужно собрать библиотеки таким же образом.

И вот где я застрял.

После загрузки исходного кода я открываю графический интерфейс cmake и ввожу путь к исходному коду как: D:/libs/glew-2.1.0/build/cmake и строю двоичный путь как D:/libs/glew-2.1.0/build/cmake/build. Я выбираю платформу как WIN32, так как я строю 32-битную игру. Я оставляю необязательный набор инструментов пустым и использую встроенные компиляторы по умолчанию.

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

enter image description here

Какие опции я должен установить здесь для создания статического релиза и отладки, сборки, скомпилированной с /MT?

Я взглянул на сценарий glew-config cmake и вижу, что он не должен выводить статические библиотеки с помощью _s:

if(DEFINED GLEW_USE_STATIC_LIBS)
  # if defined, use only static or shared
  if(GLEW_USE_STATIC_LIBS)
    set(_glew_target_postfix "_s")
  endif()

... но этокажется, что сценарий никогда не достигнет этой точки. Я пытался добавить GLEW_USE_STATIC_LIBS в качестве переменной входа в cmake, но это ничего не делает. Я не уверен, какие переменные установить, и я не могу найти много онлайн.

Я компилирую, используя msbuild INSTALL.vcxproj, и это, похоже, приводит к динамической lib. Я пытался запустить msbuild glew_s.vcxproj, но это все равно не дает статическую библиотеку.

Кто-нибудь знает, как это сделать?

...