Я пытаюсь использовать GLFW с cmake для Windows.
Я скачал .lib файлы для 32-битной версии из здесь и связал их. Я также связал OpenGL32.lib (32-битная версия).
Структура проекта:
-aspyre
-external
-include
-GLFW
glfw3.h
glfw3native.h
-lib
-GLFW
glfw3.dll
glfw3.lib
glfw3dll.lib
OpenGL32.lib
-build
..cmake build stuff
main.cpp
CMakeLists.txt:
cmake_minimum_required(VERSION 3.6.2)
project(Aspyre VERSION 1.0.0)
#External includes
set(EXTERNAL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external/include)
#External libraries
set(EXTERNAL_LIB_DIR ${CMAKE_SOURCE_DIR}/external/lib)
set(GLFW_LIB_DIR ${EXTERNAL_LIB_DIR}/GLFW)
#Putting everything together
add_executable(Aspyre)
target_link_directories(
Aspyre
PUBLIC
${GLFW_LIB_DIR}
)
target_link_libraries(
Aspyre
glfw3
glfw3dll
OpenGL32
)
target_include_directories(
Aspyre
PUBLIC
${EXTERNAL_INCLUDE_DIR}
)
target_sources(
Aspyre
PUBLIC
${CMAKE_SOURCE_DIR}/main.cpp
)
main.cpp:
#include <GLFW/glfw3.h>
int main(void)
{
return 0;
}
После генерации файлов сборки я пытаюсь скомпилировать "msbuild Aspyre.vcxproj", и в этот момент я получаю сообщение об ошибке:
unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)"
Это означает, что существует объявление, но не определениеточки входа, верно? . Но я уверен, что определил точку входа в main.cpp ... также я использую подпись из официальной документации , поэтому она должна быть правильной.
Я мог нормально скомпилировать и запустить программу вчера. Разница, я думаю, заключалась в том, что я запутался в расположении glfw.dll, но не могу вспомнить, куда я положил его для работы программы ...
Любая помощь оценивается.