2017-05-16 78 views
0

我已經停留了一段時間了,我無法弄清楚如何讓freeglut工作。我以爲我知道它要求我做什麼,所以我添加了set(prefix_path)行,但它沒有做任何事情。我應該寫我自己的freeglut-config.cmake還是什麼?CMake在Clion的窗口中找不到freeglut

注:我使用的MinGW包freeglut從這個website

CMake的文件:

cmake_minimum_required(VERSION 3.7) 
project(HW1) 
set(CMAKE_CXX_STANDARD 11) 
set(SOURCE_FILES Triangle.cpp) 
set(CMAKE_PREFIX_PATH "C:/freeglut") 

find_package(GLEW REQUIRED STATIC) 
find_package(FREEGLUT REQUIRED) 
find_package(OPENGL REQUIRED) 

include_directories(${FREEGLUT_INCLUDE_DIRS} ${GLEW_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIRS}) 
link_directories(${FREEGLUT_LIBRARY_DIRS} ${GLEW_LIBRARY_DIRS} ${OPENGL_LIBRARY_DIRS}) 
add_definitions(${FREEGLUT_DEFINITIONS} ${GLEW_DEFINITIONS} ${OPENGL_DEFINITIONS}) 

add_executable(HW1 ${SOURCE_FILES}) 
target_link_libraries(HW1 ${FREEGLUT_LIBRARIES} ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES}) 

完整的錯誤:

CMake Error at CMakeLists.txt:8 (find_package): 
    By not providing "FindFREEGLUT.cmake" in CMAKE_MODULE_PATH this project has 
    asked CMake to find a package configuration file provided by "FREEGLUT", 
    but CMake did not find one. 

    Could not find a package configuration file provided by "FREEGLUT" with any 
    of the following names: 

    FREEGLUTConfig.cmake 
    freeglut-config.cmake 

    Add the installation prefix of "FREEGLUT" to CMAKE_PREFIX_PATH or set 
    "FREEGLUT_DIR" to a directory containing one of the above files. If 
    "FREEGLUT" provides a separate development package or SDK, be sure it has 
    been installed. 

回答

2

如果你的應用是GLUT兼容 ,它沒有使用freeglut的任何擴展名,那麼最好搜索GLUT而不是FREEGLUT:命令使用

find_package(GLUT REQUIRED) 

「查找」的劇本已經被運入CMake的發行版,並且也freeglut它搜索。

(請注意,包含目錄和鏈接庫的命令變量相應地爲GLUT_INCLUDE_DIRGLUT_LIBRARY)。

如果你的應用需要正是freeglut(即,使用了一些它的擴展不相容與其他GLUT實現的),你需要船舶您的包裹FindFREEGLUT.cmake腳本,並相應地調整CMAKE_MODULE_PATH變量:

# Assuming you have <source-dir>/cmake/FindFREEGLUT.cmake 
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") 
find_package(FREEGLUT REQUIRED) 

您可能會發現在網現有的腳本,或者自己寫吧,就像here


在任何情況下,如果您將freeglut安裝到非系統位置,您需要提示CMake。例如,通過調整CMAKE_PREFIX_PATH

+0

我不確定這有幫助,現在我得到一個不同的錯誤:https://hastebin.com/cuzohiwada.vbs。我用這個傢伙find.cmake https://github.com/PDAL/PDAL/blob/master/cmake/modules/FindFreeGLUT.cmake – lbenedetto

+0

看起來你的圖書館是**不兼容**與MinGW。請注意,對於glew函數有未定義的引用,這些與GLUT或freeglut無關。 – Tsyvarev

+0

所以提供的windows二進制文件(http://glew.sourceforge.net/)將不起作用?我將不得不從源碼編譯我自己的? – lbenedetto