IBM AIX 머신에서 돌아가는 컴파일러.

하하의 이미지

IBM AIX 머신에서 돌아가는 컴파일러로

VAC 라고 들어보셨는지요?

웹에서 검색해도 나오질 않아서 제가 알고 있는 스펠링이

틀린 듯 한데 비슷한 무엇이라도 있는 건가요?

있다면.. linux에서 개발한 서버가 물론 gcc 컴파일러를 사용

했구요. 포팅 가능할지.. 여쭙고 싶습니다.

그럼.. 즐거운 하루 되세요...

bugiii의 이미지

답변이 되지는 못하겠지만요... AIX 에 gcc 를 설치하지 못하는 이유가 있습니까? 없다면 gcc 로 하시는 것이 어떨지요?

espereto의 이미지

이전에 IBM AIX에서 잠깐 작업해본 적이 있었습니다.
gcc 기반으로 작성된 놈을 포팅하는 거였는데, ANSI 표준을 지켜서 작성한 경우 별 어려움 없이 컴파일 되었습니다. (소스 파일만 100여개가 넘는 놈인데 한 방에 빌드 되었습니다. -_-; 정작 파일 두 개짜리는 에러나서 애 좀 먹고 ;; )

VAC인지 아닌지는 모르겠습니다. c 컴파일러 파일명이 xlc 인가 그렇던데......

그리고, AIX에도 gcc 설치 가능한 걸로 아는데요? 처음에는 gcc 쓰려다 설치 안 되어 있어서 그냥 장비에 있는 컴파일러 썼었는데...... 이후에 몇 번 gcc 깔아달라고 했었지만 -_-; gcc 쓸 이유가 없어져서 안 썼다는.. ;;;

파일 두 개 짜리에서 애먹었던 이유는, 어떤 라이브러리를 링크해야 하는지 찾느라 삽질한 것과, 표준 문법에서 좀 어긋나있던 게 있었다는 것, 이 두 가지 이유였습니다.

참고로, 저 100여개짜리 소스 프로젝트는...... 윈도/리눅스/유닉스 모두 포팅되어 돌아가고 있습니다. Endian 문제도 없고, 컴파일 할 때 오류도 거의 안 나더군요. ANSI / POSIX 표준만 잘 지키면, 그리고 링크될 라이브러리만 잘 지정하면 포팅할 때 크게 문제되는 일은 없는 것 같습니다. gcc건 VC++이건 아님 다른 c / c++ 컴파일러건 말이죠.

warpdory의 이미지

하하 wrote:
IBM AIX 머신에서 돌아가는 컴파일러로

VAC 라고 들어보셨는지요?

웹에서 검색해도 나오질 않아서 제가 알고 있는 스펠링이

틀린 듯 한데 비슷한 무엇이라도 있는 건가요?

있다면.. linux에서 개발한 서버가 물론 gcc 컴파일러를 사용

했구요. 포팅 가능할지.. 여쭙고 싶습니다.

그럼.. 즐거운 하루 되세요...

VAC 는 VisualAge C/C++ 입니다.
http://www-3.ibm.com/software/awdtools/ccompilers/
여기에서 나오고 좀 비쌉니다...
http://www14.software.ibm.com/webapp/download/product.jsp?s=p&id=TDUN-49EVS5
여기서 60 일짜리 trial 판을 구할 순 있습니다.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

하하의 이미지

드뎌 모듈 설치하러 오늘 들어갑니다.

헌데. AIX 기반에 VAC(visual age for C/C++)에 대해 아는게

없어서 .. 알려주신 IBM 사이트 들어가서 평가판 다운받아

rpm 설치하려 했는데... 실패 했습니다. 생각엔 x-window상에서

설치해야 하지 않나 생각되어지는데...

암튼... vac로 컴팔도 못해보고 linux 머신 gcc 로 컴팔한걸 들고

들어가봐야 하는데.... 심히 걱정스럽습니다. 또한 pthread를 사용합니다

과연 POSIX 라이브러리가 깔렸는지.....

질문 드립니다. gcc 와 posix 라이브러리를 설치 하려면.. 참고 도움말

부탁 드립니다. 시간에 쫏겨 이렇게 질문 드립니다.

아 마지막으로 vac는 콘솔에서 컴팔이 가능한지도 알고 싶습니다...

그럼 즐거운 하루 되세요.....

“바람에게도 길은 있다. 나는 비로소 나의 길을 가느니. 길은 언제나 어디에나 있다.”

다즐링의 이미지

하하 wrote:
드뎌 모듈 설치하러 오늘 들어갑니다.

헌데. AIX 기반에 VAC(visual age for C/C++)에 대해 아는게

없어서 .. 알려주신 IBM 사이트 들어가서 평가판 다운받아

rpm 설치하려 했는데... 실패 했습니다. 생각엔 x-window상에서

설치해야 하지 않나 생각되어지는데...

암튼... vac로 컴팔도 못해보고 linux 머신 gcc 로 컴팔한걸 들고

들어가봐야 하는데.... 심히 걱정스럽습니다. 또한 pthread를 사용합니다

과연 POSIX 라이브러리가 깔렸는지.....

질문 드립니다. gcc 와 posix 라이브러리를 설치 하려면.. 참고 도움말

부탁 드립니다. 시간에 쫏겨 이렇게 질문 드립니다.

아 마지막으로 vac는 콘솔에서 컴팔이 가능한지도 알고 싶습니다...

그럼 즐거운 하루 되세요.....

당연히 컴파일 가능합니다.

그리고 aix가 어떤 상태로 깔렸느냐에 따라 -_-;

상태가 천차 만별일껍니다..

업체에따라 -_-;; 다르게 깔립니다;;

제 경우지만 xlc 로만 컴파일 되는것도 있었습니다. ( 본인이 c를 몰라 소수 수정을 못했습니다; )

------------------------------------------------------------------------------------------------
Life is in 다즐링

ifyou의 이미지

상황 정리가 잘 안되네요.

VAC를 rpm으로 설치하려 했다는 것은 리눅스에서 했다는 말인지,
aix에서 했다는 말인지 모르겠네요.

그리고, linux에서 gcc로 컴파일 했다는 말은, linux에서 gcc로 테스트한
소스를 말하는 것인지, 컴파일된 바이너리를 말하는건지..

정황으로 봐서는 소스를 들고 가신다는 말 같은데.. 예전에 같은 프로그램을
linux, solaris, aix, hp-ux용으로 개발할때 보니까 거의 비슷한데 아주
조금씩 다른 부분이 있었습니다. 소스 차원에서도 쬐끔 손을 봐야 했고,
동작도 미묘한 차이를 보였습니다. 어차피 완전히 다른 시스템들이니까..

참, 위 시스템 모두 gcc 잘 깔리고 개발하는데 전혀 지장없습니다. 다만,
특정 라이브러리를 가지고 개발해야 할때는 전용 컴파일러 아니면 안되는
경우가 있었습니다.

"하하"님이 게시판 볼때 쯤이면 결과가 나왔을 것 같은데.. :D

하하의 이미지

포팅 했슴다.

그런데.

97==> if ( ch == -1 )
return (-1);

util.c:97: warning: comparison is always false due to limited range of data type

이런 워닝이 떨어지는데 좀 찜찜하네요..

비교는 항상 에러라니.. 이게 무슨 .. 말인지......

그렇담 이걸 빼야 하는지...

^^... 도움 부탁드립니다...

“바람에게도 길은 있다. 나는 비로소 나의 길을 가느니. 길은 언제나 어디에나 있다.”

cjh의 이미지

ch가 unsigned이면 -1과의 비교는 항상 거짓이라는
내용이죠. ch가 unsigned 타입인가 보네요.

다른 값으로 비교하거나 signed 타입으로 바꾸셔야
정상입니다. 이건 다른 컴파일러에서도 잡을텐데...

--
익스펙토 페트로눔

하하의 이미지

Quote:

ch가 unsigned이면 -1과의 비교는 항상 거짓이라는
내용이죠. ch가 unsigned 타입인가 보네요.

다른 값으로 비교하거나 signed 타입으로 바꾸셔야
정상입니다. 이건 다른 컴파일러에서도 잡을텐데...

unsigned char 형 일땐. 부호를 표시 못하여 이런 워닝을 내신다고
하셨는데 실제 코드부분은 char형 입니다.

        char ch;

        ch =  getc(fp);

        if ( ch == EOF )
                    return (EOF);

님께서 얘기해주신 부분은 아닌거 같아 글 올립니다.

그럼 즐거운 하루 되세요.

“바람에게도 길은 있다. 나는 비로소 나의 길을 가느니. 길은 언제나 어디에나 있다.”

맹고이의 이미지

음... 뭔가 내부적으로 char가

unsigned char로 정의 되어있는게 아닐까요?

확실하게 signed char라고 선언해보심이...

lsj0713의 이미지

하하 wrote:
Quote:

ch가 unsigned이면 -1과의 비교는 항상 거짓이라는
내용이죠. ch가 unsigned 타입인가 보네요.

다른 값으로 비교하거나 signed 타입으로 바꾸셔야
정상입니다. 이건 다른 컴파일러에서도 잡을텐데...

unsigned char 형 일땐. 부호를 표시 못하여 이런 워닝을 내신다고
하셨는데 실제 코드부분은 char형 입니다.

        char ch;

        ch =  getc(fp);

        if ( ch == EOF )
                    return (EOF);

님께서 얘기해주신 부분은 아닌거 같아 글 올립니다.

그럼 즐거운 하루 되세요.

처음부터 그렇게 좀 더 자세한 코드를 올려주셨으면 얘기가 쉬워졌을텐데 말이죠.

getc() 함수의 리턴값은 char형이 아니라 int형 입니다. getc 함수가 리턴하는 값의 범위는 0~ 255 와 EOF 입니다. 이것은 char형이나 unsigned char형으로는 모두 다 표현할 수가 없습니다. 따라서 getc 함수의 리턴 값을 받을 때는 int형 변수를 사용해야 합니다.

만약 int형 대신에 char형 변수를 사용할 경우에는 -1 ~ -128 중의 숫자 하나와 EOF가 겹치게 됩니다. 따라서 그 값은 받지 못하게 되는 것이죠. unsigned char형인 경우에는 아예 EOF 값을 받지 못합니다. .그리고 unsigned integer 형에 음수를 저장하는 행위는 항상 % 연산을 통해 처리하도록 정의되어 있기 때문에, 경고 하나 안뜰 가능성이 큽니다.

또한 EOF가 어떤 값이냐에 따라서도 얘기가 달라질 수 있습니다. 제가 알기로 EOF는 '(컴파일러가 각자 정한) 임의의 음수 값'이라고 알고 있습니다. EOF로 사용 가능한 수의 범위가 어디까지인지는 모르겠지만, 만약 EOF로 -128보다 작은 음수 값을 사용하는 것이 허용되어 있다면, 그리고 사용하시는 컴파일러에서 실제로 그렇게 정의되어 있다면 char형으로는 도저히 표현할 수가 없으므로 위의 if문은 영원히 false가 되겠지요.

댓글 달기

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