우분투 13.10에서 gcc 컴파일 에러
아래 소스를 컴파일하니 다음 에러가 납니다
gcc: error: Shell1.c: No such file or directory
gcc 버전은 4.8.1 입니다.
다른예제에서는 컴파일과 실행이 잘 되었습니다.
혹시 #include <sys/wait.h> 의 경로가 문제되는지요?
include "apue.h"
include <sys/wait.h>
int main(void) { char buf[MAXLINE]; /* from apue.h */ pid_t pid; int status;
printf("%% "); /* print prompt (printf requires %% to print %) / while (fgets(buf, MAXLINE, stdin) != NULL) { if (buf[strlen(buf) - 1] == '\n') buf[strlen(buf) - 1] = 0; / replace newline with null */
if ((pid = fork()) < 0) { err_sys("fork error"); } else if (pid == 0) { /* child */ execlp(buf, buf, (char *)0); err_ret("couldn't execute: %s", buf); exit(127); }
/* parent */ if ((pid = waitpid(pid, &status, 0)) < 0) err_sys("waitpid error"); printf("%% "); } exit(0); }
다음 예제는 에러없이 실행이 됩니다.
include "apue.h"
include <dirent.h>
int main(int argc, char *argv[]) { DIR *dp; struct dirent *dirp;
if (argc != 2)
err_quit("usage: ls directory_name");
if ((dp = opendir(argv[1])) == NULL)
err_sys("can't open %s", argv[1]);
while ((dirp = readdir(dp)) != NULL)
printf("%s\n", dirp->d_name);
closedir(dp);
exit(0);
}
자세한 명령어가 궁금합니다.
gcc: error: Shell1.c: No such file or directory
그냥 간단하게
Shell1.c 이런 소스 파일이 없다는 겁니다.
혹시 소스 파일명 잘못적은게 아닌지 궁금
즐린
고맙습니다.
파일은 작업 디렉토리에 있습니다.
include <sys/wait.h> 의 경로에 문제가 있는 것을 발견했습니다.
모든 교재에는 #include <sys/wait.h> 로 되어 있는데 그대로 컴파일 하면 질문과 같은 에러가 발생합니다. 우분투에는 sys 디렉토리가 없어서 에러가 발생한 것 같습니다. 하여튼 해결해서 고맙습니다.
에에에 그럴리가 없는데요
sys/wait.h는 표준 헤더이기 때문에 개발환경이 제대로 되어 있다면 반드시 있어야 합니다.
우분투라면 build-essential 패키지가 설치되어 있나 확인해 보세요.
댓글 달기