静的リンクと動的リンクを混在させているようです。これらのいずれかを使用することを選択する必要があります。
使用するtarget_link_libraries(${PROJECT_NAME} glfwdll)
場合、動的リンクを使用しています。つまり、ライブラリの dll バージョンに対してリンクしています。その場合、プログラムを実行できるように、ビルドされた実行可能ファイルと同じフォルダーに GLFW.dll ファイルを配置する必要があります。また、ライブラリの dll バージョンを使用するには、フラグをGLFW_DLL
定義する必要があるようです。add_definitions(-DGLFW_DLL)
ソースファイルに入れるよりも、CMake で定義したほうがよいでしょう。
静的リンクは扱いが簡単です。使用するだけtarget_link_libraries(${PROJECT_NAME} glfw)
です。ファイルGLFWDLL.lib
とGLFW.dll
.
したがって、動的リンクを使用すると、CMakeLists.txt
次のようになります (#define GLFW_DLL
ソース ファイルから を削除します)。
cmake_minimum_required(VERSION 2.8)
project(test)
aux_source_directory(. SRC_LIST)
include_directories(../../glfw/glfw-2.7.7/include)
link_directories(../../glfw/glfw-2.7.7/lib-msvc110)
add_definitions(-DGLFW_DLL)
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} opengl32 glfwdll)
静的リンクに変更する場合は、最後の 3 行を次のように変更します。
#add_definitions(-DGLFW_DLL)
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} opengl32 glfw)
それが役に立てば幸い!上記のコードはすべてテストされていません:-)