Xmanager : telnet으로 접속시 make 명령어가 안들어요

orionkhw의 이미지

안녕하세요
윈도우에서 Xmanager를 이용하여 telnet으로 linux 5.2에 접속하였습니다. 둘 다 저의 연구실에 있는 겁니다.
root 계정으로 바꾼 후 제가 짠 프로그램을 make *** 해서 컴파일을 하는데 계속 링크된 파일안에 있는 함수가 undefined라고 나옵니다. 분명히 컴파일하면서 링크를 시켰는데도 말이죠.

그런데 희한한 것은 리눅스 컴퓨터에 직접가서 make *** 컴파일을 하면 되는 것입니다.

PATH 설정이 잘못되었나 싶어 기본적인 bin, sbin, lib등은 다 연결해 주었지만 마찬가지였습니다.

왜 이런 현상이 일어나죠?

어떻게 해야 될까요. 가르쳐 주세요. (참고로 전.... 좀 맹~이걸랑요)

pynoos의 이미지

정확한 error message를 다 올려 주세요...

문제가 Xmanager가 아닐 가능성이 클것 같습니다만....

orionkhw의 이미지

실행창에서 telnet으로 접속해도 컴파일이 안되네요에러메세지는 아래와 같습니다
읽어주셔서 고맙고요 답변 기다릴게요

[root@srao4 OTF]# make otf
g++ -g -Wall -I./include -I./include_opcom -c otf.c
g++ -g -Wall -I./include -I./include_opcom -o otf otf.o ./dmc/dmc.o ./dmc/poll.o
-L./libastro -lastro -L./lib -ltelcom -lm
./libastro/libastro.a(astro.o): In function `astro::GaToEq(double, double, doubl
e *, double *, int)':
astro.o(.text+0x8c4b): undefined reference to `__eh_pc'
./libastro/libastro.a(astro.o): In function `astro::EqToGa(double, double, doubl
e *, double *, int)':
astro.o(.text+0x9057): undefined reference to `__eh_pc'
./libastro/libastro.a(astro.o): In function `astro::EqToHo(double *, double *, d
ouble *, double, double, int, double, double *, double *)':
astro.o(.text+0xc13b): undefined reference to `__eh_pc'
./libastro/libastro.a(astro.o): In function `astro::dpplr(double *, double *, do
uble *, double *, double *, double, double, double, int, int, double, double *)'
:
astro.o(.text+0xd943): undefined reference to `__eh_pc'
astro.o(.text+0xd96c): undefined reference to `__eh_pc'
./libastro/libastro.a(astro.o)(.text+0x10d27): more undefined references to `__e
h_pc' follow
collect2: ld returned 1 exit status
make: *** [otf] Error 1

리눅스!

Necromancer의 이미지

루트로 바꿀때 혹시 그냥 su로 바꾼건 아닌가요?

'su -'로 해서 바꿔서 해보시길 바랍니다.

그냥 su 하면 루트로 바뀌기전 사용자의 환경변수를 그대로 가져갑니다.

Written By the Black Knight of Destruction

pynoos의 이미지

자기 소스가 아닌 남의 소스에서

undefined reference to 'xxx'

이런 말이 나오면, 정말 난감해집니다. 자기 소스일때도 모르는 심볼이면 그렇지요.

이런경우에는 모든 .o, .a, .so file 들을 찾아서

nm 으로 어디에 그 symbol이 선언되어 있는지 찾아내는 수 밖에 없습니다.

nm -A *.a *.o *.so > t

하신뒤 t file을 열어서 __eh_pc 가 U 가 아닌 T, B 등으로 선언된 line을 찾으세요, 그 줄 앞에 쓰여진 library나 object가 link 되어야하는데, Makefile 상에서 빠진 것 같군요.

-A option은 여러개의 library에서 검사할 때 유용한 옵션입니다.

file이 군데군데 흩어져 있다면 find 와 조합하면 가능하겠지요.

orionkhw의 이미지

__eh_pc가 U로 되어 있었지만 최초 이게 포함된 library가 컴파일할 때 링크가 안되었더군요. 그런데 신기했던 건 그걸 넣어도 에러가 나던데 아예 그 라이브러리를 원격 컴퓨터에서 컴파일하고 다음에 문제 있던 녀석도 컴파일하니 에러가 안납니다.
^^ 왜 이런걸까요. 원격 root와 자기 컴에서의 root도 틀린가봐요. ^^;

여하튼 해결해 주셔서 감사합니다. (근데 진짜 왜 이런거여요....?) :?:

리눅스!

cdpark의 이미지

Quote:
여하튼 해결해 주셔서 감사합니다. (근데 진짜 왜 이런거여요....?)

원격접속할 때와 그냥 접속할 때의 환경변수 등의 차이겟죠.

각각의 상태에서 env 를 친 후에 비교해보세요.

pynoos의 이미지

library는 link 할 때, 순서를 따집니다. 필요한 것 뒤에 나타나야하지요.

orionkhw의 이미지

조금 몇몇 항목에서 틀리던데 어떻게 하면...되져... ^^;

리눅스!

댓글 달기

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