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을 만들때 같이 링크를 해주었어야 했는데 불편한 질문에 관심 가져주셔서 정말 감사합니다 ㅠㅠㅠ
댓글 달기