Today
-
Yesterday
-
Total
-
  • μš°λΆ„νˆ¬ λŒ€μ‹  Solaris 10으둜 κ³΅λΆ€ν•˜κΈ°
    Soliloquy 2019. 5. 31. 12:39

     

    🐞

     

    μ˜ˆμ „μ— μ‚¬μš©ν•˜λ˜ λ°μŠ€ν¬ν†±μ— μ„€μΉ˜λœ μš°λΆ„νˆ¬κ°€ λΆ€νŒ…μ΄ κ°‘μžκΈ° μ•ˆλ˜μ„œ 학ꡐ SSH μ„œλ²„λ₯Ό μ΄μš©ν•΄λ³΄κΈ°λ‘œ ν•˜μ˜€λ‹€. 큰 상관은 μ—†μ§€λ§Œ ν•™κ΅ μ„œλ²„λ„ λ¦¬λˆ…μŠ€λ₯Ό μ‚¬μš©ν•  쀄 μ•Œμ•˜λŠ”λ°, μ•Œκ³ λ³΄λ‹ˆ μ†”λΌλ¦¬μŠ€ 10 μ΄λΌλŠ” μœ λ‹‰μŠ€μ˜€λ‹€.

     

    λ‚΄κ°€ ν•  일듀은 λͺ¨λ‘ μ‰˜ μ•ˆμ—μ„œ λλ‚˜λŠ” 일이라 μ‰˜μ„ μ’€ μ‚΄νŽ΄λ³΄κΈ°λ‘œ ν–ˆλ‹€. μ²˜μŒμ—λŠ” μš°λΆ„νˆ¬μ— μ„€μΉ˜λœ μ‰˜ ν”„λ‘œκ·Έλž¨μΈ bashλΌμ„œ μ™„μ „ λΉ„μŠ·ν•  쀄 μ•Œμ•˜λŠ”λ°, 생각보닀 차이가 μ’€ μžˆμ—ˆλ‹€.

     

    λ‚΄κ°€ κ²ͺ은 λ¬Έμ œμ λ“€

     

    1. μ„œλ²„ λ¬Έμž 인코딩 섀정이 CPC949 으둜 μ„€μ •λ˜μ–΄ μžˆλ‹€.

     

    -bash-3.2$ mv
    mv: β–’β–’β–’Ϊ°β–’ β–’β–’β–’β–’Υ΄Ο΄β–’ (0)
    β–’β–’β–’β–’: mv [-f] [-i] f1 f2
           mv [-f] [-i] f1 ... fn d1
           mv [-f] [-i] d1 d2
    -bash-3.2$

    mv λͺ…령을 μ‚¬μš©ν•œ 경우, λ¬Έμžκ°€ κΉ¨μ Έ 보인닀.

     

    Putty κΈ°λ³Έ 섀정이 UTF-8이기 λ•Œλ¬Έμ—, ν•œκΈ€μ΄ κΉ¨μ Έμ„œ 좜λ ₯λ˜μ—ˆλ‹€. μ΄λŠ” putty의 Windows - Appearance μ„€μ •μ—μ„œ Fontλ₯Ό ν•œκΈ€μ„ 기본적으둜 μ§€μ›ν•˜λŠ” 문체뢀 제λͺ© 돋움체(영문λͺ…:MJemokGothic)둜 μ„€μ • ν•œ λ’€, Translationμ—μ„œ Use Font encoding을 μ„ νƒν•˜λ‹ˆ ν•΄κ²°λ˜μ—ˆλ‹€.[각주:1]

     

     

    Putty μ„€μ • ν™”λ©΄, ν΄λ¦­ν•˜μ—¬ 크게 λ³Ό 수 μžˆλ‹€.

     

     

    -bash-3.2$ mv
    mv: μΈμžκ°€ λΆ€μ‘±ν•©λ‹ˆλ‹€ (0)
    μ‚¬μš©λ²•: mv [-f] [-i] f1 f2
           mv [-f] [-i] f1 ... fn d1
           mv [-f] [-i] d1 d2
    -bash-3.2$

    μ„€μ •ν•œ λ’€ mv λͺ…령을 μ‚¬μš©ν•œ 경우, λ¬Έμžκ°€ 잘 보인닀.

     

    2. κΈ°λ³Έ ν™˜κ²½λ³€μˆ˜λ‘œ 섀정이 μ•ˆλ˜μ–΄ μžˆλŠ”κ²Œ λ§Žλ‹€.

     

    -bash-3.2$ gcc -o foo.c foo
    -bash: gcc: command not found
    -bash-3.2$

    gccλ₯Ό μ‚¬μš©ν•œ ν™”λ©΄, λͺ…령을 찾을 수 μ—†λ‹€κ³  λ‚˜μ˜¨λ‹€.

     

    이제 gcc둜 μ»΄νŒŒμΌμ„ ν•œ 번 ν•΄λ³ΌκΉŒ ν•΄μ„œ, 책에 λ‚˜μ˜¨λŒ€λ‘œ gcc λͺ…령어듀을 μž…λ ₯을 ν–ˆλŠ”λ°, μœ„와 같이 μ˜€λ₯˜κ°€ λ°œμƒν•œλ‹€.

     

    μ²˜μŒμ—λŠ” gccλ₯Ό μΌλΆ€λŸ¬ μ œκ±°ν–ˆλ‚˜ μ‹Άμ—ˆλŠ”λ°, μ•Œκ³ λ³΄λ‹ˆ κ·Έλƒ₯ κΈ°λ³Έ ν™˜κ²½ λ³€μˆ˜λ‘œ 등둝이 λ˜μ–΄ μžˆμ§€ μ•Šμ•„μ„œ μ΄λŸ¬ν•œ λ¬Έμ œκ°€ μƒκΈ°λŠ” κ²ƒμ΄μ—ˆλ‹€.

     

    ν™˜κ²½ λ³€μˆ˜λž€ μ‰˜μ—μ„œ μ‚¬μš©μžλ‚˜ ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜κΈ° μ‰½κ²Œ 미리 λͺ…λ Ήμ–΄λ₯Ό μ§€μ •ν•΄λ†“λŠ” 것 μ΄μ—ˆλ‹€. 예λ₯Ό λ“€λ©΄ myappμ΄λΌλŠ” ν”„λ‘œκ·Έλž¨μ„ μ„€μΉ˜ν•˜λ € ν•˜λ©΄ νŒŒμΌ λ³΅μ‚¬λ§Œ 되고 터미널 μƒμ—μ„œ myapp 을 μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό λˆ„λ₯΄λ©΄ λ‚΄κ°€ κ²ͺ은 λ¬Έμ œμ™€ 같이, command not fount λΌλŠ” μ—λŸ¬κ°€ 생긴닀. μ‰˜μ—μ„œ myapp 만 μž…λ ₯ν•˜κ³  λ°”λ‘œ μ‹€ν–‰μ‹œν‚¬ 수 있으렀면 μ‰˜μ—κ²Œ myapp = myapp이 μ„€μΉ˜λœ 폴더/myapp μ΄λΌλŠ” 것을 미리 μ •μ˜ ν•΄ μ£Όμ–΄μ•Ό ν•œλ‹€.

     

    보톡 μš°λΆ„νˆ¬λ‚˜ λ‹€λ₯Έ λ¦¬λˆ…μŠ€μ—μ„œλŠ” μœ„μ™€ 같이 gccλ‚˜ make ν”„λ‘œκ·Έλž¨μ΄ κΈ°λ³Έ ν™˜κ²½λ³€μˆ˜λ‘œ μ„€μ •λ˜μ–΄ μžˆμ–΄μ„œ gcc -o 등을 ν„°λ―Έλ„μ—μ„œ λ°”λ‘œ μ‹€ν–‰ν•  수 μžˆμ—ˆλ‹€. ν•˜μ§€λ§Œ, Solaris μƒμ—μ„œλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ„€μΉ˜λŠ” λ˜μ–΄ 있긴 ν•˜μ§€λ§Œ, κΈ°λ³Έ ν™˜κ²½ λ³€μˆ˜λ‘œ λ˜μ–΄μžˆμ§€ μ•Šμ•„μ„œ 싀행이 μ•ˆλ λ•Œκ°€ λ§Žλ‹€.

     

    ν™˜κ²½ λ³€μˆ˜μ— gccλ₯Ό μΆ”κ°€ν•΄μ£ΌλŠ” μž‘μ—…μ„ ν•˜λ©΄ λ˜κΈ°λŠ” ν•˜μ§€λ§Œ, ν™˜κ²½ λ³€μˆ˜ 관리 κΆŒν•œμ΄ μ—†μ–΄μ„œ gcc 폴더에 직접 μ°Ύμ•„ λ“€μ–΄κ°€μ„œ μ‹€ν–‰μ‹œμΌ°λ‹€. gcc ν΄λ”λŠ” /usr/sfw/bin/ μ˜€λ‹€.

     

    -bash-3.2$ /usr/sfw/bin/gcc -o foo foo.c
    foo.c:7:2: warning: no newline at end of file[각주:2]
    -bash-3.2$

    gcc μ‹€ν–‰ ν™”λ©΄

     

    gccλ₯Ό 포함해 λ‚΄κ°€ μ‚¬μš©ν•˜κ²Œ 된 μ£Όμš” λͺ…λ Ήμ–΄ ν΄λ”λŠ” λ‹€μŒκ³Ό κ°™μ•˜λ‹€.

     

    • gcc: /usr/sfw/bin/
      μ‚¬μš© μ‹œ: /usr/sfw/bin/gcc

    • make: /usr/ccs/bin/
      μ‚¬μš© μ‹œ: /usr/ccs/bin/make

    • ar: /usr/ccs/bin/ar
      μ‚¬μš© μ‹œ: /usr/ccs/bin/ar

     

    그리고 makeλ₯Ό μ‚¬μš©ν•  λ•Œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ, gcc와 ar이 ν™˜κ²½λ³€μˆ˜λ‘œ μ§€μ •λ˜μ–΄ μžˆμ§€ μ•Šμ•„μ„œ 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.

     

    -bash-3.2$ /usr/ccs/bin/make -f Makefile5​
    /usr/sfw/bin/gcc -I. -g -Wall -ansi -c main.c​
    /usr/sfw/bin/gcc -g -Wall -ansi  -c -o 2.o 2.c​
    ar rv mylib.a 2.o​
    sh: *** Error code 1​
    make: Fatal error: Command failed for target `mylib.a(2.o)'​ 

    make 도쀑 ar을 찾을 수 μ—†μ–΄ λ°œμƒν•œ 였λ₯˜

     

    μ΄λŸ¬ν•œ λ¬Έμ œμ—μ„œλŠ” CC와 AR 맀크둜λ₯Ό λ”°λ‘œ 지정해 쀌으둜써 해결을 ν•  수 μžˆμ—ˆλ‹€.

     

    -bash-3.2$ /usr/ccs/bin/make -f Makefile5_3 "AR=/usr/ccs/bin/ar" "CC=/usr/sfw/bin/gcc"
    mksh: Warning: newline is not last character in file Makefile5_3
    Current working directory /usr7/student/s20150679/linux_study/ch9
    /usr/sfw/bin/gcc -g -Wall -ansi  -c  main.c
    /usr/sfw/bin/gcc -g -Wall -ansi  -c  2.c
    /usr/sfw/bin/gcc -g -Wall -ansi  -c  3.c

    makeλ₯Ό μ •μƒμ μœΌλ‘œ μ‚¬μš©ν•  수 있게 λ˜μ—ˆλ‹€.

     

    3. GCC λ„€νŠΈμ›Œν¬ μ†ŒμΌ“ λΌμ΄λΈŒλŸ¬λ¦¬ μ‚¬μš©

     

     -bash-3.2$ /usr/sfw/bin/gcc fd_seri.c  -o fd_seri
    fd_seri.c:20:2: warning: no newline at end of file
    μ •μ˜λ˜μ§€ μ•ŠμŒ                   첫번째 참쑰된
     κΈ°ν˜Έ                       파일:
    socket                              /var/tmp//ccmttq7F.o
    ld: 치λͺ…적: symbol referencing errors. No output written to fd_seri
    collect2: ld returned 1 exit status
    -bash-3.2$

    sys/socket.h ν—€λ”νŒŒμΌ μ‚¬μš© μ‹œ λ‚˜μ˜€λŠ” 였λ₯˜

     

    sys/socket.h ν—€λ”νŒŒμΌ μ‚¬μš©μ‹œ μ•Œ 수 μ—†λŠ” 였λ₯˜κ°€ λ‚˜μ˜€λ©΄μ„œ 컴파일이 λ˜μ§€ μ•ŠλŠ” 였λ₯˜κ°€ λ‚˜νƒ€λ‚¬λ‹€. socket을 λͺ» λ§Œλ“€λ‹€λ‹ˆ, ν—€λ”νŒŒμΌμ— 무슨 λ³€ν™”κ°€ μžˆμ—ˆλ‚˜? μ‹Άμ—ˆλŠ”λ°, 인터넷을 μ°Ύμ•„λ³΄λ‹ˆ μ†ŒμΌ“ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ•„λ‹ˆκ³ , Solaris μ—μ„œλŠ” μ»΄νŒŒμΌ μ‹œ -lsocket  -lnsl μ˜΅μ…˜μ„ μ€˜μ•Ό ν•œλ‹€λŠ” 말을 μΈν„°λ„·μ—μ„œ μ°Ύμ•˜λ‹€.[각주:3]

     

    -bash-3.2$ /usr/sfw/bin/gcc fd_seri.c -lsocket -lnsl  -o fd_seri
    fd_seri.c:20:2: warning: no newline at end of file
    -bash-3.2$

    μ˜΅μ…˜μ„ μ£Όλ‹ˆ 싀행이 잘 λœλ‹€.

     

     

    μš”μ¦˜ κ³΅λΆ€ ν•œλ²ˆ ν•˜λŠ”λ° μ°Ύμ•„ 봐야 ν•˜λŠ” 것이 μ°Έ λ§Žμ€ 것 κ°™λ‹€.

     

     

     

    1. Use Font encoding λŒ€μ‹  CP949λ₯Ό μž…λ ₯해도 좜λ ₯이 잘 λ˜μ—ˆλ‹€. [본문으둜]
    2. μ—λŸ¬λŠ” 파일 맨 끝 κ°œν–‰ 문자λ₯Ό 넣지 μ•Šμ•„μ„œ 생긴 였λ₯˜ [본문으둜]
    3. isocket insl의 λœ»μ€ libsocket.so와 libnsl.so 라이브러리λ₯Ό 컴파일 μ‹œ ν¬ν•¨ν•˜λΌλŠ” 말인 것 κ°™λ‹€. 좜처: https://kimgisa.tistory.com/107 [본문으둜]

    λŒ“κΈ€

μ–΄μ œλŠ” 이곳에 λͺ…이 λ‹€λ…€κ°”μŠ΅λ‹ˆλ‹€.

Powered & Designed by Tistory