回答編集履歴
4
間違い修正
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
ちょっと修正
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
コメントを受けて追記
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
ちょっと意味を取り違えそうだったので、修正
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)`は、適切なインストール作業をしてインストールしないと機能しません。(おそらくそのためにエラーになっているのではないかと)
|