c언어 코딩 중 도저히 이해가 안갑니다
글쓴이: ehddms10 / 작성시간: 금, 2022/11/04 - 11:12오후
worker.c 파일
#include "worker.h" #include "pmenu.h" #include <ncurses.h> #include <unistd.h> void workerselect() { int stat = 0; int ch; keypad(stdscr, TRUE); noecho(); while (1) { ch = getch(); if (ch == 10) { if (stat == 0) { chdir("1p"); ppselect(); chdir(".."); } else if (stat == 1) { chdir("2p"); ppselect(); chdir(".."); } else if (stat == 2) { chdir("3p"); ppselect(); chdir(".."); } else if (stat == 3) { chdir("driver"); } } if (stat == 0) { if (ch == KEY_RIGHT) { pp2(); stat = 1; } else if (ch == KEY_DOWN) { pp3(); stat = 2; } } else if (stat == 1) { if (ch == KEY_LEFT) { pp1(); stat = 0; } else if (ch == KEY_DOWN) { driver(); stat = 3; } } else if (stat == 2) { if (ch == KEY_UP) { pp1(); stat = 0; } else if (ch == KEY_RIGHT) { driver(); stat = 3; } } else if (stat == 3) { if (ch == KEY_LEFT) { pp3(); stat = 2; } else if (ch == KEY_UP) { pp2(); stat = 1; } } } }
위 함수에서 ppselect() 이 부분이 undefined reference "ppselect" 이게 떠요 include도 문제없이 해주었고 문제는 없어보이는데 아래에 ppselect도 보여드릴게요
pmenu.h
#ifndef __PMENU_H__ #define __PMENU_H__ void pinit(); void pmanage(); void pexit(); void ppselect(); #endif
pmenu.c 파일
#include"pmenu.h" #include<ncurses.h> void ppselect() { int stat=0; int ch; keypad(stdscr, TRUE); pinit(); noecho(); while(1) { ch = getch(); if(ch == 10) { if(stat == 0) { break; } } else if(stat == 0) { if(ch == KEY_RIGHT) { stat = 1; pmanage(); } } else if(stat == 1) { if(ch == KEY_RIGHT) { stat = 2; pexit(); } else if(ch == KEY_LEFT) { stat = 0; pinit(); } } else if(stat == 2) { if(ch == KEY_LEFT) { stat = 1; pmanage(); } } } }
이렇게 단편적으로 보여드리는게 못할 짓인건 아는데 너무 답답해서 올립니다 죄송합니다 라이브러리는 ncurses를 비롯해서 시스템 호출 위주로 사용 중입니다. 나머지 사용자 지정 함수들은 다 회면 출력 코드들이라 넣어봤자 공간만 차지할까봐 넣지 않겠습니다 혹시 필요하시다면 수정하겠습니다
Makefile
main.out: main.o initmenu.o menu.o worker.o gcc -o main.out main.o initmenu.o menu.o worker.o -lncurses main.o: initmenu.h menu.h worker.h main.c gcc -c main.c -lncurses initmenu.o: initmenu.h initmenu.c gcc -c initmenu.c -lncurses worker.o: worker.h pmenu.h worker.c gcc -c worker.c pmenu.c -lncurses menu.o: menu.h worker.h menu.c gcc -c menu.c clean: rm -f *.o
Forums:
최소한 #include 부분하고 makefile
최소한 #include 부분하고 makefile 정도는 있어야 답변이 가능하지 않을까요
추가하겠습니다 근데 이게 파일이 너무 많아서 참
추가하겠습니다 근데 이게 파일이 너무 많아서 참 죄송스럽네요 ㅠㅠ
pmenu.h 내용이 있어야 하죠!
pmenu.h 내용이 있어야 하죠!
올렸습니다 그냥 이거 전체를 다 보여드리고 싶은데
올렸습니다 그냥 이거 전체를 다 보여드리고 싶은데 ㅠㅠ 파일이 10개나 되서 ㅠㅠ
혹시나 불편하시면 메일이라도 남겨주시면 파일 전부
혹시나 불편하시면 메일이라도 남겨주시면 파일 전부 보내드리겠습니다 죄송할 따름입니다
아 makefile에 문제가 있었네요 main을
아 makefile에 문제가 있었네요 main을 만들때 같이 링크를 해주었어야 했는데 불편한 질문에 관심 가져주셔서 정말 감사합니다 ㅠㅠㅠ
댓글 달기