c++で作ったプログラムを分割しようと思っています.
プログラム自体は動くのですが分割の段階で詰まっています.
![]
上のプログラムをmain,func1,func2,setupに分けようと考えています.
ヘッダーファイルはそれぞれ以下の通りです
//func1.h void print_itemNum(); void decrease_item(int type); void spawn_block(int m_x, int m_y, bool turn); int set_form(int type); void draw_item(int type); void select_size(); void start_up();
//func2.h bool isExistL(); bool isExistM(); bool isExistS(); void draw(); bool isWin(); void isFinish();
//setup.h void init_window1(); void init_window2(); void draw_name(); void help(); void draw_board();
//define.h extern bool turn; extern bool win; extern int type; extern int g_x, g_y; extern int item_s; extern int p1_large; extern int p1_medium; extern int p1_small; extern int p2_large; extern int p2_medium; extern int p2_small; extern char items; extern int grid;
makefileは以下の通りです.
makefile
1//tictactoe++がmainです 2 3main : tictactoe++.o func1.o func2.o setup.o 4 g++ -o tictactoe++.exe tictactoe++.o func1.o func2.o setup.o -lncurses 5clean: 6 rm tictactoe++.exe func1.exe func2.exe setup.exe tictactoe++.o func1.o select.o func2.o setup.o 7func1.o : func1.cpp 8 g++ -c func1.cpp 9func2.o : func2.cpp 10 g++ -c func2.cpp 11setup.o : setup.cpp 12 g++ -c setup.cpp
err
1g++ -c -o tictactoe++.o tictactoe++.cpp 2tictactoe++.cpp:24:31: エラー: conflicting declaration ‘int item_s [20][10]’ 3 int item_s[IT_WIDTH][IT_HEIGHT]; 4 ^ 5In file included from tictactoe++.cpp:9:0: 6define.h:5:12: 備考: previous declaration as ‘int item_s’ 7 extern int item_s; 8 ^~~~~~ 9tictactoe++.cpp:31:33: エラー: conflicting declaration ‘char items [][10][20]’ 10 char items[][IT_HEIGHT][IT_WIDTH] = { 11 ^ 12In file included from tictactoe++.cpp:9:0: 13define.h:12:13: 備考: previous declaration as ‘char items’ 14 extern char items; 15 ^~~~~ 16tictactoe++.cpp:72:23: エラー: conflicting declaration ‘int grid [2][3][3]’ 17 int grid[2][GRID][GRID] = { 18 ^ 19In file included from tictactoe++.cpp:9:0: 20define.h:13:12: 備考: previous declaration as ‘int grid’ 21 extern int grid; 22 ^~~~ 23make: *** [<ビルトイン>: tictactoe++.o] エラー 1 24
原因としてグローバル変数ががリンクされていないと思うのですが調べてもわからなかったです.
よろしくお願いします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/10 18:04