프로그램 컴파일 시returned 1 exit status 에러 질문이요~~

embeddeds0의 이미지

APUE2 UNIX 고급 프로그래밍 책을 새롭게 공부하고 있는데
returned 1 exit status 라는 에러가 뜹니다..

1 #include "apue.h"
2 #include "dirent.h"
3
4 int main(int argc, char *argv[])
5 {
6 DIR *dp;
7 struct dirent *dirp;
8
9 if ((dp = opendir(argv[1])) == NULL)
10 err_sys("can't open %s", argv[1]);
11 while ((dirp = readdir(dp)) != NULL)
12 printf("%s\n", dirp->d_name);
13
14 closedir(dp);
15 exit(0);
16 }

[root@localhost Programming]# gcc -W -Wall -o 1_3 1_3.c
1_3.c: In function ‘main’:
1_3.c:4: warning: unused parameter ‘argc’
/tmp/cckUSjG6.o: In function `main':
1_3.c:(.text+0x38): undefined reference to `err_sys'
collect2: ld returned 1 exit status
[root@localhost Programming]#

apue.h 헤더파일을 다운받아서 /usr/include 디렉토리에 위치시키고 현재 디렉토리에도 포함시켰는데

계속 같은에러가 뜨네요. 해결방법좀 알려주세요~

익명 사용자의 이미지

"collect2: ld returned 1 exit status"는 단지 링커가 정상 종료하지 않았다는 뜻일 뿐입니다.

링크가 왜 실패했는지는 그 윗 줄에 나와있네요.

"1_3.c:(.text+0x38): undefined reference to `err_sys'"

err_sys을 찾을 수 없어서 실패했네요.
링커가 이 심볼을 찾을 수 없는 것은 필요한 라이브러리나 오브젝트 파일을 알려주지 않았기 때문이겠지요.

그럼 답이 나왔네요. err_sys가 정의되어있는 라이브러리나 오브젝트 파일을 링커에게 알려줘야지요.
또는 err_sys가 정의되어 있는 파일이 아직 컴파일되어 있지 않다면 그냥 함께 컴파일하면 됩니다.
이 세 가지 중 어떤 경우인지는 직접 찾으셔야할 것 같네요.

익명 사용자의 이미지

답글을 늦게 달긴 했는데 저도 비슷하게 문제생겨서 stackoverflow에 찾아봤습니다.
math.h 같은 경우는 -lm 옵션을 줘야하더라고요

최순실의 이미지

저도 그렇게 나오는데..... 어떻게 해야 하는지 모르겠어요.

dream train@Naver의 이미지

apue.h 와 같이 동봉된 라이브러리는 없었나요?

익명 사용자의 이미지

책 본문에 err_sys를 비롯한 오류 함수들 소스 코드 있습니다. 그거랑 같이 빌드하면 됩니다.

제가 지금 들고 있는 건 3판 번역서인데 부록 B에 있군요. 2판에선 어땠는지 기억이 안 나는데 아마 있었을 겁니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.