質問編集履歴
7
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
g++ ライブラリ
|
1
|
+
[SDL2][g++] ライブラリリンクしても未定義の外部参照というエラーの原因が知りたい
|
test
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
提示
|
1
|
+
提示のコマンドラインのコードですがなぜ以下のディレクトリ構造で以下のコマンドで未定義参照というエラーが出るのでしょうか?原因がわかりません。
|
2
|
-
これはどうやってライブラリパスを指定するのでしょうか?
|
3
2
|
|
3
|
+
|
4
|
+
##### ダウンロードしてきたファイル
|
5
|
+
Github: https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
6
|
+
ダウンロードファイル: SDL2-devel-2.24.1-mingw.zip
|
4
7
|
|
5
8
|
##### 環境
|
6
9
|
OS windows10
|
@@ -8,60 +11,29 @@
|
|
8
11
|
コンパイラ: g++
|
9
12
|
|
10
13
|
##### フォルダ構成
|
11
|
-
sdlディレクトリ内にSDL2ディレクトリがあり
|
14
|
+
sdlディレクトリ内にlib(.libファイル)ディレクトリ、SDL2(インクルード)ディレクトリがあります。Main.cppソースファイルもsdlディレクトリ内にあります。
|
12
|
-
またsdlディレクトリの中にMain.cppソースファイルがあります。コードは下記参照
|
13
15
|
|
14
|
-
|
15
|
-
##### 試したこと
|
16
|
-
1,参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
17
|
-
2,コマンド部より複数のコマンドを実行
|
18
|
-
3,Githubサイトより[SDL2-2.24.1-win32-x64.zip],[SDL2-2.24.1.zip],[SDL2-devel-2.24.1-mingw.zip],[SDL2-devel-2.24.1-VC.zip]をそれぞれダウンロードしてきてそれぞれのコマンドで実行
|
19
|
-
4,回答より指定されたコマンドを実行しましたが未定義のエラーが発生します。
|
20
|
-
|
21
|
-
##### 参考サイト
|
22
|
-
sdl2: https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
23
|
-
参考サイト:https://qiita.com/edo_m18/items/9dfab147482b2ce31840
|
24
|
-
参考サイト2:https://stackoverflow.com/questions/17048072/sdl-2-undefined-reference-to-winmain16-and-several-sdl-functions
|
25
16
|
##### コマンド
|
26
17
|
```
|
27
|
-
g++ -I . Main.cpp -o -Llib -lSDL2
|
28
|
-
g++ -I . Main.cpp -o -L/lib -lSDL2
|
29
|
-
g++ -I . Main.cpp -o -Llib/ -lSDL2
|
30
|
-
```
|
31
|
-
|
32
|
-
##### 回答部より実行したコマンド
|
33
|
-
```
|
34
|
-
C:\Users\yw325\Desktop\sdl>g++ -I. Main.cpp -
|
18
|
+
C:\Users\yw325\Desktop\sdl>g++ -I. Main.cpp -Llib/ -lSDL2 -lSDL2main
|
35
|
-
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccJ
|
19
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccJaJxMJ.o:Main.cpp:(.text+0xe): undefined reference to `SDL_Init'
|
36
|
-
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccJ
|
20
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccJaJxMJ.o:Main.cpp:(.text+0x13): undefined reference to `SDL_Quit'
|
37
21
|
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../libmingw32.a(main.o):(.text.startup+0xc0): undefined reference to `WinMain@16'
|
38
22
|
collect2.exe: error: ld returned 1 exit status
|
39
23
|
|
40
|
-
```
|
41
|
-
|
42
|
-
|
43
|
-
##### Error 1
|
44
|
-
```
|
45
|
-
C:\Users\yw325\Desktop\sdl>
|
24
|
+
C:\Users\yw325\Desktop\sdl>
|
46
|
-
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2
|
47
|
-
collect2.exe: error: ld returned 1 exit status
|
48
|
-
|
49
|
-
```
|
50
|
-
##### Error 2
|
51
|
-
```
|
52
|
-
C:\Users\yw325\Desktop\sdl>g++ -I. Main.cpp -o main.exe -lmingw32 -Llib/ -lSDL2main -lSDL2
|
53
|
-
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccLlAY3w.o:Main.cpp:(.text+0x16): undefined reference to `SDL_Init'
|
54
|
-
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccLlAY3w.o:Main.cpp:(.text+0x1b): undefined reference to `SDL_Quit'
|
55
|
-
collect2.exe: error: ld returned 1 exit status
|
56
25
|
```
|
57
26
|
|
58
27
|
|
59
28
|
|
60
29
|
##### ソースコード
|
61
30
|
```cpp
|
31
|
+
#include <iostream>
|
62
|
-
#include
|
32
|
+
#include "SDL2/SDL.h"
|
33
|
+
//#include <SDL2/SDL.h>
|
63
34
|
|
35
|
+
|
64
|
-
int main(
|
36
|
+
int main()
|
65
37
|
{
|
66
38
|
SDL_Init(SDL_INIT_EVERYTHING);
|
67
39
|
|
@@ -69,4 +41,5 @@
|
|
69
41
|
|
70
42
|
return 0;
|
71
43
|
}
|
44
|
+
|
72
45
|
```
|
6
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,10 +13,10 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
##### 試したこと
|
16
|
-
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
16
|
+
1,参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
17
|
-
コマンド部より複数のコマンドを実行
|
17
|
+
2,コマンド部より複数のコマンドを実行
|
18
|
-
Githubサイトより[SDL2-2.24.1-win32-x64.zip],[SDL2-2.24.1.zip],[SDL2-devel-2.24.1-mingw.zip],[SDL2-devel-2.24.1-VC.zip]をそれぞれダウンロードしてきてそれぞれのコマンドで実行
|
18
|
+
3,Githubサイトより[SDL2-2.24.1-win32-x64.zip],[SDL2-2.24.1.zip],[SDL2-devel-2.24.1-mingw.zip],[SDL2-devel-2.24.1-VC.zip]をそれぞれダウンロードしてきてそれぞれのコマンドで実行
|
19
|
-
|
19
|
+
4,回答より指定されたコマンドを実行しましたが未定義のエラーが発生します。
|
20
20
|
|
21
21
|
##### 参考サイト
|
22
22
|
sdl2: https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
@@ -28,6 +28,17 @@
|
|
28
28
|
g++ -I . Main.cpp -o -L/lib -lSDL2
|
29
29
|
g++ -I . Main.cpp -o -Llib/ -lSDL2
|
30
30
|
```
|
31
|
+
|
32
|
+
##### 回答部より実行したコマンド
|
33
|
+
```
|
34
|
+
C:\Users\yw325\Desktop\sdl>g++ -I. Main.cpp -o main.exe -Llib/ -lSDL2main -lSDL2
|
35
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccJczVkq.o:Main.cpp:(.text+0xe): undefined reference to `SDL_Init'
|
36
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccJczVkq.o:Main.cpp:(.text+0x13): undefined reference to `SDL_Quit'
|
37
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../libmingw32.a(main.o):(.text.startup+0xc0): undefined reference to `WinMain@16'
|
38
|
+
collect2.exe: error: ld returned 1 exit status
|
39
|
+
|
40
|
+
```
|
41
|
+
|
31
42
|
|
32
43
|
##### Error 1
|
33
44
|
```
|
5
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,15 +7,21 @@
|
|
7
7
|
エディタ Vscode
|
8
8
|
コンパイラ: g++
|
9
9
|
|
10
|
+
##### フォルダ構成
|
11
|
+
sdlディレクトリ内にSDL2ディレクトリがありインクルードファイルがあります。libディレクトリがありそこに.a等のファイルが入っています
|
12
|
+
またsdlディレクトリの中にMain.cppソースファイルがあります。コードは下記参照
|
13
|
+
|
14
|
+
|
10
15
|
##### 試したこと
|
11
16
|
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
17
|
+
コマンド部より複数のコマンドを実行
|
12
|
-
|
18
|
+
Githubサイトより[SDL2-2.24.1-win32-x64.zip],[SDL2-2.24.1.zip],[SDL2-devel-2.24.1-mingw.zip],[SDL2-devel-2.24.1-VC.zip]をそれぞれダウンロードしてきてそれぞれのコマンドで実行
|
13
19
|
|
20
|
+
|
21
|
+
##### 参考サイト
|
22
|
+
sdl2: https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
14
23
|
参考サイト:https://qiita.com/edo_m18/items/9dfab147482b2ce31840
|
15
24
|
参考サイト2:https://stackoverflow.com/questions/17048072/sdl-2-undefined-reference-to-winmain16-and-several-sdl-functions
|
16
|
-

|
17
|
-

|
18
|
-
|
19
25
|
##### コマンド
|
20
26
|
```
|
21
27
|
g++ -I . Main.cpp -o -Llib -lSDL2
|
4
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,9 +7,10 @@
|
|
7
7
|
エディタ Vscode
|
8
8
|
コンパイラ: g++
|
9
9
|
|
10
|
+
##### 試したこと
|
11
|
+
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
12
|
+
sdl2(mingw.zipをダウンロード): https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
10
13
|
|
11
|
-
sdl2(mingw.zipをダウンロード): https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
12
|
-
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
13
14
|
参考サイト:https://qiita.com/edo_m18/items/9dfab147482b2ce31840
|
14
15
|
参考サイト2:https://stackoverflow.com/questions/17048072/sdl-2-undefined-reference-to-winmain16-and-several-sdl-functions
|
15
16
|

|
3
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
提示画像ですが以下の画像のディレクトリ構造の内容で以下のコマンドを入力してみたのですがどれも以下のErrorが発生してしまいます。
|
2
2
|
これはどうやってライブラリパスを指定するのでしょうか?
|
3
|
+
|
4
|
+
|
5
|
+
##### 環境
|
6
|
+
OS windows10
|
7
|
+
エディタ Vscode
|
8
|
+
コンパイラ: g++
|
9
|
+
|
3
10
|
|
4
11
|
sdl2(mingw.zipをダウンロード): https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
5
12
|
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
2
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
提示画像ですが以下の画像のディレクトリ構造の内容で以下のコマンドを入力してみたのですがどれも以下のErrorが発生してしまいます。
|
2
2
|
これはどうやってライブラリパスを指定するのでしょうか?
|
3
3
|
|
4
|
-
|
4
|
+
sdl2(mingw.zipをダウンロード): https://github.com/libsdl-org/SDL/releases/tag/release-2.24.1
|
5
5
|
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
6
6
|
参考サイト:https://qiita.com/edo_m18/items/9dfab147482b2ce31840
|
7
7
|
参考サイト2:https://stackoverflow.com/questions/17048072/sdl-2-undefined-reference-to-winmain16-and-several-sdl-functions
|
1
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
提示画像ですが以下の画像のディレクトリ構造の内容で以下のコマンドを入力してみたのですがどれも以下のErrorが発生してしまいます。
|
2
2
|
これはどうやってライブラリパスを指定するのでしょうか?
|
3
3
|
|
4
|
+
|
5
|
+
参考サイト2より順序にきおつけてError2のように実行したのですがエラーが出ます。
|
4
6
|
参考サイト:https://qiita.com/edo_m18/items/9dfab147482b2ce31840
|
5
|
-
|
7
|
+
参考サイト2:https://stackoverflow.com/questions/17048072/sdl-2-undefined-reference-to-winmain16-and-several-sdl-functions
|
6
8
|

|
7
9
|

|
8
10
|
|
@@ -13,13 +15,22 @@
|
|
13
15
|
g++ -I . Main.cpp -o -Llib/ -lSDL2
|
14
16
|
```
|
15
17
|
|
16
|
-
##### Error
|
18
|
+
##### Error 1
|
17
19
|
```
|
18
20
|
C:\Users\yw325\Desktop\sdl>g++ -I . Main.cpp -o -Llib -lSDL2
|
19
21
|
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2
|
20
22
|
collect2.exe: error: ld returned 1 exit status
|
21
23
|
|
22
24
|
```
|
25
|
+
##### Error 2
|
26
|
+
```
|
27
|
+
C:\Users\yw325\Desktop\sdl>g++ -I. Main.cpp -o main.exe -lmingw32 -Llib/ -lSDL2main -lSDL2
|
28
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccLlAY3w.o:Main.cpp:(.text+0x16): undefined reference to `SDL_Init'
|
29
|
+
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\yw325\AppData\Local\Temp\ccLlAY3w.o:Main.cpp:(.text+0x1b): undefined reference to `SDL_Quit'
|
30
|
+
collect2.exe: error: ld returned 1 exit status
|
31
|
+
```
|
32
|
+
|
33
|
+
|
23
34
|
|
24
35
|
##### ソースコード
|
25
36
|
```cpp
|