teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

間違い修正

2020/12/04 13:55

投稿

katsuko
katsuko

スコア3601

answer CHANGED
@@ -48,18 +48,18 @@
48
48
  ```
49
49
  # (パスにスペースが入っていると適切に設定できませんので、ダブルクォーテーションでくくってください。
50
50
  # エラーメッセージからスペースは入っていないようですが、念の為)
51
- include_directories( "${PREOJCT_SOURCE_DIR}/GLFW/include" }
51
+ include_directories( "${PREOJCT_SOURCE_DIR}/GLFW/include" )
52
52
  ```
53
53
 
54
54
  ```
55
55
  # 昔は、このように書いていた。
56
- include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/GLFW/include" }
56
+ include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/GLFW/include" )
57
57
  ```
58
58
 
59
59
  ```
60
60
  # もうマクロが怪しいので、直接ベタで書いてエラーが出るか確認。
61
61
  # パスはエラーメッセージから推測して書いてますが、間違っていたら訂正してください。
62
- include_directories( "E:/programming/CLion/JetBrains/CLProjects/Test-GLFW/GLFW/include" }
62
+ include_directories( "E:/programming/CLion/JetBrains/CLProjects/Test-GLFW/GLFW/include" )
63
63
  ```
64
64
 
65
65
  ------

3

ちょっと修正

2020/12/04 13:55

投稿

katsuko
katsuko

スコア3601

answer CHANGED
@@ -58,6 +58,7 @@
58
58
 
59
59
  ```
60
60
  # もうマクロが怪しいので、直接ベタで書いてエラーが出るか確認。
61
+ # パスはエラーメッセージから推測して書いてますが、間違っていたら訂正してください。
61
62
  include_directories( "E:/programming/CLion/JetBrains/CLProjects/Test-GLFW/GLFW/include" }
62
63
  ```
63
64
 

2

コメントを受けて追記

2020/12/04 13:53

投稿

katsuko
katsuko

スコア3601

answer CHANGED
@@ -19,4 +19,57 @@
19
19
  ぶっちゃけ、`include_directories`も`link_directories`も`target_link_libraries`も、`find_package(GLFW)`で設定されたものを使用していないので、`find_package(GLFW)`は不要です。
20
20
  ついでにいうと、OpenGLも直接指定しているので同様です。
21
21
 
22
- ちなみに`find_package(GLFW)`は、適切なインストール作業をしてインストールしないと機能しません。(おそらくそのためにエラーになっているのではないかと)
22
+ ちなみに`find_package(GLFW)`は、適切なインストール作業をしてインストールしないと機能しません。(おそらくそのためにエラーになっているのではないかと)
23
+
24
+ ----
25
+ コメントを受けて。
26
+
27
+ とりあえず「`find_package`」は忘れてください。
28
+ 話がややっこしくなります。
29
+ (glfw3は、`include_directories`と`link_directories`と`target_link_libraries`を適切に設定すれば、`find_package`はとりあえず必要ありません。後でちゃんとするならば話は別ですけど、今はビルドが通ることに専念してください)
30
+
31
+ ```
32
+ E:\programming\CLion\JetBrains\CLProjects\Test-GLFW\main.cpp(2): fatal error C1083: include ファイルを開けません。'GLFW/glfw3.h':No such file or directory
33
+ ```
34
+
35
+ このエラーから察するに、`include_directories`の指定が間違っています。
36
+
37
+ 「プロジェクトの状態」ですが、以下のファイルのパスは正しいですか?
38
+
39
+ * `Test-GLFW/GLFW/include/GLFW/glfw3.h`
40
+ * `Test-GLFW/CmakeLists.txt`
41
+ * `Test-GLFW/main.cpp`
42
+
43
+ (質問文の「プロジェクトの状態」だと`CmakeLists.txt`と`main.cpp`は`Test-GLFW/GLFW`ディレクトの下にあるように見えますが、エラーログを見る限り上記のようになっているので、ハッキリさせてください)
44
+ もし`CmakeLists.txt`が`Test-GLFW`フォルダ以下になければ、そのようなエラーになります。
45
+
46
+ もしそれでもダメであれば、以下も試してみてください。
47
+
48
+ ```
49
+ # (パスにスペースが入っていると適切に設定できませんので、ダブルクォーテーションでくくってください。
50
+ # エラーメッセージからスペースは入っていないようですが、念の為)
51
+ include_directories( "${PREOJCT_SOURCE_DIR}/GLFW/include" }
52
+ ```
53
+
54
+ ```
55
+ # 昔は、このように書いていた。
56
+ include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/GLFW/include" }
57
+ ```
58
+
59
+ ```
60
+ # もうマクロが怪しいので、直接ベタで書いてエラーが出るか確認。
61
+ include_directories( "E:/programming/CLion/JetBrains/CLProjects/Test-GLFW/GLFW/include" }
62
+ ```
63
+
64
+ ------
65
+ あと、上記のエラーとは別の話になりますが。
66
+
67
+ エラーメッセージを読む限り、コンパイラはVisualStudio2019を使っているようですが、そうであればライブラリもvs2019のものを使うべきだと思います。
68
+
69
+ ```
70
+ #link_directories( ${PROJECT_SOURCE_DIR}/GLFW/lib-mingw )
71
+ link_directories( ${PROJECT_SOURCE_DIR}/GLFW/lib-vc2019 )
72
+ ```
73
+
74
+ …というか、ちゃんとしたところからダウンロードしてきますか?
75
+ 「vc2019」と言いながらライブラリの拡張子は「.a」?と思ってGLFWのサイトからWindows用プレコンパイルバイナリのパッケージを持ってきてみてみましたが、内容が違っているようです。

1

ちょっと意味を取り違えそうだったので、修正

2020/12/04 13:45

投稿

katsuko
katsuko

スコア3601

answer CHANGED
@@ -16,7 +16,7 @@
16
16
  target_link_libraries( Test-GLFW glfw3 gdi32 opengl32 )
17
17
  ```
18
18
 
19
- ぶっちゃけ、`include_directories`も`link_directories`も`target_link_libraries`も、`find_package(GLFW)`で設定されたものを使用していないので、不要です。
19
+ ぶっちゃけ、`include_directories`も`link_directories`も`target_link_libraries`も、`find_package(GLFW)`で設定されたものを使用していないので、`find_package(GLFW)`は不要です。
20
20
  ついでにいうと、OpenGLも直接指定しているので同様です。
21
21
 
22
22
  ちなみに`find_package(GLFW)`は、適切なインストール作業をしてインストールしないと機能しません。(おそらくそのためにエラーになっているのではないかと)