Я пытаюсь скомпилировать 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-битную игру. Я оставляю необязательный набор инструментов пустым и использую встроенные компиляторы по умолчанию.
После генерации я вижу множество опций, которые можно установить. Я приложил изображение ниже.
Какие опции я должен установить здесь для создания статического релиза и отладки, сборки, скомпилированной с /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
, но это все равно не дает статическую библиотеку.
Кто-нибудь знает, как это сделать?