unpv12e & unpv22e 소스 어떻게 컴파일하나요?

crom0406의 이미지

1.
unp 소스를 구해서 컴파일하려는데..
디렉토리안에 들어 있는 README 파일에서 시키는데로 하는데요.
configure까지는 되는데..
lib안에서 make 하라고 하더군요.
근데 아래와 같은 에러를 띄웁니다.
물론 다른 곳에서 make를 실행해도 똑같은 에러를 출력합니다.
그리고 강제로 unp.h만 가져와도 같은 에러를 발생시킵니다.

In file included from connect_nonb.c:1:
unp.h:114: redefinition of `struct in_pktinfo'
make: *** [connect_nonb.o] Error 1

unp 소스 컴파일 해보신 분 도움 좀 주십시요
2.
그리고 ACE라는 C++ 네트웍 라이브러리(?)라는 놈에 대해서 아시는 분
약간의 설명이라도 좋으니 저의 좁은 식견을 넓혀줄 말씀 좀..부탁드립니다.
(사실 네트웍 프로그래밍 책이기에 무턱대고 책을 사버렸습니다.
http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN89-8054-507-X)
3.
한꺼번에질문을 다하려고 하니깐 질문이 일관성을 잃어가는 느낌이네요..^^;

그리고 ACE라는 라이브러리(라이브러리라고 표현해야 하는 게 맞는지 모르겠지만 그 책에서는 Wrapper Class라고 하던데) 설치 메뉴얼에..
제가 모르는 부분이 있어서 질문

Add an environment variable called ACE_ROOT that contains the name of the root of the directory where you keep the ACE wrapper source tree. The ACE recursive Makefile scheme needs this information. There are several ways to set the ACE_ROOT variable. For instance, in my .login file I have the following entry:


      % setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
      
However, if you're building a number of versions of ACE, e.g., for different OS platforms or for different releases of ACE, you might use the following approach: 


      % setenv ACE_ROOT $cwd

이렇게 되어있는데 %setenv라는 명령어는 없는 듯하고
굳이 리눅스에 쓰는 명령어가 아닌듯한데요.
그리고 .bash_profile에 PATH로 적어줬는데..
역시 안되더군요..어떻게 하라는 건지 조언 좀..

hys545의 이미지

setenv는 c셀에서 사용하는 명령어입니다.
리녹스에서 흔히 사용하는 bash에서는 export가 같은 일 합니다.

즐린

mach의 이미지

1. 설치 플랫폼을 먼저 봐야 할듯합니다.

       alpha-dec-osf3.2
       alpha-dec-osf4.0
       hppa1.1-hp-hpux10.30
       i386-pc-bsdi3.0
       i386-univel-sysv4.2MP   (UnixWare 2.1.2)
       i586-pc-linux-gnu       (RedHat Linux 4.2)
       powerpc-ibm-aix4.2.0.0
       sparc-sun-solaris2.5.1
       sparc-sun-solaris2.6
       sparc-sun-sunos4.1.4

이 정도 플랫폼이 테스트된(소스저자왈~) 상황이므로 검토를 필요로 하지요.

2. ACE는 Schmidt교수가 만든 미들웨어 입니다. 미들웨어는 다양하게
분류할 수 있는데, 그중 객체지향미들웨어라고 볼 수 있습니다. 미들웨어의
강점은 저수준(특히 통신)을 잘 몰라도 인터페이스만 알면 쉽게 목적을 달성
할 수 있다 라는 명제를 가지고 만들어진 라이브러리 시스템이라 할 수 있습니다.
부가적으로 다수의 기능(Fail over , load balancing, scalability등)을
행하기도 하지요. ACE의 경우의 지원스펙은 ACE를 공부하면서 보셔야 할듯합니다.
*참고로, 객체지향미들웨어 표준은 뭐니뭐니해도 CORBA라 하겠습니다. ACE-TAO가 CORBA표준의 구현이지요.

3. Wrapper라는 의미는 socket레벨에서 코딩하면 고려사항이 무지 많습니다.
또한, 구현해야하는 기능도 많고, 그래서 보통은 socket수준으로 코딩하지 않고,
누가 만들어놓은 라이브러리나, 자기자신이 축적한 라이브러리를 사용하는것이
보통입니다.
저수준을 감춰서(복잡성을 최소화) 상위레이어에서는 보다 단순한 접근을 할수있게 한것을 Wrapper라고 부릅니다.

$ vi .bash_profile 하여 아래행을 추가후 저장 
ACE_ROOT=에이스설치경로
export ACE_ROOT
$ source .bash_profile

위에서 '에이스설치경로'는 말그대로 설치경로입니다. 예를들어, 저 같은 경우
mach라는 사용자명을 쓰니까, ......
Quote:
ACE_ROOT=/home/mach/ACE_wrappers

이런식이 되겠네요.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

댓글 달기

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