솔라리스에서 C 컴파일할때..이런 에러 첨보네요

bw001730의 이미지

SunOS line01 5.8 Generic_108528-18 sun4u sparc SUNW,UltraAX-i2
아래와 같은 에러가 발생합니다.
컴파일할때..
-D_POSIX_C_SOURCE를 넣지 않으면 잘되고 동작도 잘 되는데
이거 함 넣어 보았다가 아래와 같은 에러가 발생합니다.
어째서 발생하는 것인지 모르겠습니다.

$ make
gcc -g -D_POSIX_C_SOURCE -D_REENTRANT -Wall -lpthread -c -o err.o err.c
In file included from /usr/include/sys/vnode.h:42,
from /usr/include/sys/stream.h:22,
from /usr/include/netinet/in.h:41,
from /usr/include/sys/socket.h:200,
from libcomm.h:14,
from err.c:1:
/usr/include/sys/resource.h:144: field `ru_utime' has incomplete type
/usr/include/sys/resource.h:145: field `ru_stime' has incomplete type
/usr/include/sys/resource.h:160: confused by earlier errors, bailing out

xfree의 이미지

답변이라 하기엔 좀 뭐하지만....

POSIX_C_SOURCE 키워드를 이용해
위 코드들을 검사해보면 답이 나오지 않을까요?

#ifdef POSIX_C_SOURCE
...
#else
...
#endif

이런 코드들 때문에 나오는 에러같습니다.

pynoos의 이미지

Unix에는 몇가지 표준과 벤더에서 나름대로 취급하는 표준은 아니지만 널리 사용하는 것을 선언한 것들이 있습니다.

POSIX, X/OPEN, HPUX, AIX 등등인데..

-Wall, -W 을 켜고 컴파일하다보면, 적당한 선언없이 사용하는 모든 함수 호출에 대하여 warning을 내곤하죠. 게다가, define 문이나, typedef가 없기도 합니다.

이들 표준들은 사용하려고 하면 몇가지 선언을 해주어야합니다.
근래의 함수들을 전반적으로 사용하려면,

#define _XOPEN_SOURCE 1
#define _XOPEN_SOURCE_EXTENDED 500
#define _HPUX_SOURCE 1
#define _ALL_SOURCE 1
#define _BSD_SOURCE 1

등을 선언해주어야합니다.
porting 할때는 상당히 골치아픈 문제입니다. header를 열어보면서 어떤것을 선언해야하는지 살펴보면서 define문을 모아놓고 사용하기에 앞서 include하시면서 쓰면 됩니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.