3

私は OpenGL にまったく慣れていないので、自宅でアプリケーションをコンパイルしようとしています。私の大学では、研究室の教授がすべてを解決し、そこで Linux を使用しています。自宅では、Windows 8 と Visual Studio 2013 を使用しています。

以下のインクルードを含むアプリで球体を構築しようとしています:

#include <GL/glut.h>
#include <math.h>
#include <iostream>

それで、Glut.h が含まれているので、http: //www.opengl.org/resources/libraries/glut/glut_downloads.php#2 にアクセスしてライブラリをダウンロードして動かしましたが、いくつか問題がありました。

Windows版はコンパイルされると思っていましたが、そうではありませんでした。プロジェクトのプロパティでそれらをリンクすることを期待していたので、DLLはパッケージ内にないため、CMakeを使用して過剰をコンパイルしようとしましたが、機能しませんでした。CMake は次のログを返します。

CMake Error: Cannot open file for write: C:/Program Files/Glut 3.7 Build/CMakeCache.txt.tmp
CMake Error: The source directory "C:/Program Files/Glut 3.7/glut-3.7" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
CMake Error: : System Error: No such file or directory
CMake Error: Unable to open cache file for save. C:/Program Files/Glut 3.7 Build/CMakeCache.txt
CMake Error: : System Error: No such file or directory

フォルダーに CMake ファイルが含まれていないと表示されます。

glutへの私のダウンロードリンク(Windowsであると思われ、エラーのcosがわからない)はこれですhttp://www.opengl.org/resources/libraries/glut/glut37.zip

通常、私はJavaをプログラミングしていますが、IDEをセットアップするのにそれほど多くの頭痛の種はありません..だから簡単にしてください。

OpenGL コードを実行するには何が欠けていますか?

4

3 に答える 3

4

先生はまずあなたを助けるべきです。

GLUT ライブラリは 1998 年から廃止されました。最終バージョンは [3.7] ですが、幸運です!

" freeglut " は、OpenGL Utility Toolkit (GLUT) ライブラリの代替です。必要なものはすべてここにあります。すべて読むことをお勧めします。

そして、あなたを助けるために、ここでWindowsバイナリを見つけることができます。

ダウンロード後、ライブラリフォルダーをリンクし、フォルダーをインクルードし、freeglut.dll をプロジェクト フォルダー (Debug または Release フォルダー内) にコピーする必要があります。binフォルダー内に dll ファイルがあります。その後、 #include "GL/glut.h"問題なく通話できます。

幸運を!

于 2013-10-26T09:01:05.360 に答える
2

CMake ではコンパイルできません。Visual Studio コマンド プロンプトを開き、nmakeglut ソース コードの最上位ディレクトリに入力します。

于 2013-10-26T08:31:34.557 に答える
-1

私の大学では、研究室の教授がすべてを解決し、そこで Linux を使用しています。自宅では、Windows 8 と Visual Studio 2013 を使用しています。

次に、絶対に最初に行う必要があるのは、GPU メーカーの Web サイトにアクセスし、そこから最新のドライバーをダウンロードしてインストールすることです。これは、Windows 8 でデフォルトでインストールされるドライバーには、適切な OpenGL 機能がないためです。

だから、含まれているので、Glut.h

つまり、glut.hファイル名はほとんどのオペレーティング システムで大文字と小文字が区別されます (Windows は例外です)。したがって、移植性の理由から、適切なスペルでそれらを書くように注意する必要があります。

http://www.opengl.org/resources/libraries/glut/glut_downloads.php#2にアクセスしてライブラリをダウンロードしました

古い GLUT ライブラリは 10 年以上維持されていません。FreeGLUTのような代替実装を使用し、それを使用します。

そこで、CMake を使用して glut をコンパイルしようとしましたが、うまくいきませんでした。

さて、ここでは技術的な問題はありませんが、理解が不足しています. 基本的に、あなたの脳は、私が「IDE の腐敗」と呼んでいるものを手に入れました。IDE のこれらの砂糖コーティングとカチカチと尖ったアクションはすべて、プログラムのビルド時に実際に何が起こっているのかを覆い隠しています。ビルド コントロール ジェネレータービルド システムコンパイラーリンカーの間の相互作用がどのように機能するかを理解する必要があります。

CMake はビルド コントロール ジェネレーターです。CMake では、プログラム ソースのビルド依存関係を記述します。そこから、CMake は使用されるビルド システムの実際のビルド情報を生成します (たとえば、Linux では GNU make と GCC、Windows では NMake と MSVC++ コンパイラ)。

もちろん、CMake が機能するには、適切な CMake 構成が存在する必要があります。そして、GLUT の場合、それは絶対にありません (GLUT の最後の公式リリースは、CMake の最初のリリースよりも前のものです。

そもそもなぜ「cmake」と呼んだのですか? 何が起こっているのかを理解しようとさえせずに、これまでいつもそうしてきたか、どこかで読んでいたからでしょう。

あなたがしたことは、Cargo Cultに従ったことです。実際のプロセスにどこか似ています。外からはそう見えますが、結果は得られません。ファインマンの演説は、後にカーゴ・カルト・プログラミングという用語を作り出しました。興味深いことに、私はその用語を使用していました (ファインマンのスピーチに精通しているという理由だけで、その定義と一致しています) 他の人がまったく同じ方法でそれを造語したことを知らなかったのです。多くの場合、人々はそれに対して同じ用語を独自に思いつきます。

通常、私は Java をプログラミングしますが、IDE をセットアップするための頭痛の種はそれほど多くありません。

さて、それはあなたの問題です。IDE 内をクリックする方法しか知りません。IDE を使用して Java をプログラミングする場合でも、実際のビルド プロセス (Java コンパイラ、JAR ファイルの作成など) に精通する必要があります。

OpenGL コードを実行するには何が欠けていますか?

あまりないに違いない。それは、ソフトウェアのビルド プロセスがどのように機能し、どのように制御されているかを理解していないことです。弾丸を噛んで、最初にそれを学ぶ必要があります。そのためには、Linux または FreeBSD、あるいは少なくとも Cygwin をコンピューターにインストールすることをお勧めします。

Windows はクリック感のある GUI を中心に構築されているため、これらのことを学習するにはあまり適したシステムではありません。だからといって、Windows が悪いオペレーティング システムだったと言っているわけではありません。実験できるものを用意して、ビルド ツールのオプション スイッチのさまざまな反復をすばやく実行したいのは当然のことです。GUI ではそれができません。

于 2013-10-26T10:10:55.267 に答える