2016-08-02 10 views
0

私はクラスのopenglを勉強しようとしていますが、セットアップに問題があります。私はIDE CLionとcygwin64を使ってWindowsを使っています。今まで私はGl.hとGlu.hをコンパイルして実行することができましたが、私はfreeglutの静的ライブラリを手に入れることができません。openglと連携するフリーグラスライブラリを取得する

CMakeLists.txtファイルの最後の行に今のプログラムエラー:エラー

cannot find -lfreeglut 
collect2: error: ld returned 1 exit status 

cmake_minimum_required(VERSION 3.5) 
project(OpenGLAugust) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(OpenGLAugust ${SOURCE_FILES}) 
target_link_libraries(OpenGLAugust libopengl32.a libglu32.a libfreeglut.a) 

私はそれに見て、freeglutをダウンロードした後、私が作成する必要があることが表示されますライブラリファイル(特に.aファイルlibfreeglut32.a)をソースコードから削除します。私はそれがどのように行われたのか解説を探してみましたが、答えは見つかりませんでした。誰かがこれを行う方法を説明するのを助けることができるだろうか?

答えて

1

FreeGLUTは、コンパイラツールチェーンの可用性がWindows ABIによって義務付けられているOpenGLとは異なり、別途インストールする必要があるオプションのサードパーティライブラリです。

ほとんどの簡単な方法は、FreeGLUTソースをプロジェクトのサブディレクトリにドロップしてCMakeLists.txtに追加するだけです。 FreeGLUTにはCMakeの設定が用意されていますので、「うまくいく」でしょう。

サイドノートでは、あなたは

target_link_libraries(OpenGLAugust libopengl32.a libglu32.a …) 

しかし

find_package(OpenGL) 
target_link_libraries(OpenGLAugust 
    ${OPENGL_gl_LIBRARY} 
    ${OPENGL_glu_LIBRARY} 
    …) 

すなわちを使用しないでください合計であなたのプロジェクトのサブディレクトリにFreeGLUTのソースを抽出し、CMakeListsを

cmake_minimum_required(VERSION 3.5) 
project(OpenGLAugust) 
find_package(OpenGL) 
add_subdirectory(freeglut) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(OpenGLAugust ${SOURCE_FILES}) 
target_link_libraries(OpenGLAugust 
     ${OPENGL_gl_LIBRARY} 
     ${OPENGL_glu_LIBRARY} 
     freeglut_static) 
+0

に変更する必要があります。「could not find X11」というエラーが表示されます。私はx-orgサーバーとxinitを含むcygwin/xをダウンロードしましたが、それでも動作しません。 –

+1

@ChrisProcak:問題はCygwinがLinuxとの最大の互換性を提供しようとしていることです。そして、Linuxでは、Xサーバーを通してグラフィックスを行います。しかし、WindowsではXサーバはありません(Cygwinに付属のXサーバを起動しない限り、OpenGLのサポートは貧弱です)。 Cygwinの代わりに、MinGWを使ってプロジェクトをコンパイルすることを強くお勧めします。インストールする最も簡単な方法は、MSys2インストーラhttps://msys2.github.io/を使用してMSys2環境を取得し、その中にmingwをインストールすることです。それはあなたにネイティブのOpenGLサポートを提供します。* – datenwolf

関連する問題