提示コードですが以下のヘッダーとソースファイルに分けているのですがこれを使うソースファイルにインクルードして使おうとすると未定義の参照というエラーがでるのですが何が原因なのでしょうか?
$ make g++ obj/Fps.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor /usr/bin/ld: obj/Main.o: in function `main': Main.cpp:(.text+0x62): undefined reference to `InitColorPairs()' /usr/bin/ld: obj/Screen.o: in function `Screen::Screen()': Screen.cpp:(.text+0x1cc): undefined reference to `GetColorNum(int, int)' /usr/bin/ld: obj/Screen.o: in function `Screen::UpdateScreen()': Screen.cpp:(.text+0x331): undefined reference to `GetColorNum(int, int)' /usr/bin/ld: obj/Screen.o: in function `Screen::Delete(int, int)': Screen.cpp:(.text+0x47b): undefined reference to `GetColorNum(int, int)' /usr/bin/ld: obj/Edit.o: in function `Edit::KeyInput()': Edit.cpp:(.text+0x1bc): undefined reference to `GetColorNum(int, int)' /usr/bin/ld: obj/Edit.o: in function `Edit::MouseInput()': Edit.cpp:(.text+0x348): undefined reference to `GetColorNum(int, int)' /usr/bin/ld: obj/Edit.o:Edit.cpp:(.text+0x3f6): more undefined references to `GetColorNum(int, int)' follow collect2: error: ld returned 1 exit status make: *** [Makefile:9: AAEditor] エラー 1
cpp
1#ifndef ___COLOR_HPP_ 2#define ___COLOR_HPP_ 3 4/*########################################################### 5 # 色 6#############################################################*/ 7 8int GetColorNum(int fg, int bg); 9short CursColor(int fg); 10void InitColorPairs(); 11void SetColor(int fg, int bg); 12void UnSetColor(int fg, int bg); 13void SetAttrib(int att); 14void UnSetAttrib(int att); 15#endif 16
cpp
1#include "../header/Color.hpp" 2#include "../lib/ncurses/include/curses.h" 3 4 5int ColorNum(int fg, int bg) 6{ 7 int B, bbb, ffff; 8 9 B = 1 << 7; 10 bbb = (7 & bg) << 4; 11 ffff = 7 & fg; 12 13 return (B | bbb | ffff); 14} 15 16short CursColor(int fg) 17{ 18 switch (7 & fg) 19 { /* RGB */ 20 case 0: /* 000 */ 21 return (COLOR_BLACK); 22 case 1: /* 001 */ 23 return (COLOR_BLUE); 24 case 2: /* 010 */ 25 return (COLOR_GREEN); 26 case 3: /* 011 */ 27 return (COLOR_CYAN); 28 case 4: /* 100 */ 29 return (COLOR_RED); 30 case 5: /* 101 */ 31 return (COLOR_MAGENTA); 32 case 6: /* 110 */ 33 return (COLOR_YELLOW); 34 case 7: /* 111 */ 35 return (COLOR_WHITE); 36 } 37 38 return -1; 39} 40 41void InitColorPairs() 42{ 43 int fg, bg; 44 int colorpair; 45 46 for (bg = 0; bg <= 7; bg++) 47 { 48 for (fg = 0; fg <= 7; fg++) 49 { 50 colorpair = GetColorNum(fg, bg); 51 InitPair(colorpair, CursColor(fg), CursColor(bg)); 52 } 53 } 54} 55 56void SetColor(int fg, int bg) 57{ 58 attron(COLOR_PAIR(GetColorNum(fg, bg))); 59} 60 61void SetAttrib(int att) 62{ 63 attron(att); 64} 65 66void UnSetColor(int fg, int bg) 67{ 68 attroff(COLOR_PAIR(GetColorNum(fg, bg))); 69} 70 71void UnSetAttrib(int att) 72{ 73 attroff(att); 74}
回答1件
あなたの回答
tips
プレビュー