2014-08-29 3 views
2

리눅스 file 명령은 예를 들어, 실행에 대한 정보를 제공합니다 할당하기 않는 경우 : 동적 ELF 32 비트 LSB 실행, 인텔 80386, 버전 1 (SYSV) :
"/ 홈/foo는 GNU/Linux 2.6.9에서 "shared"(공유 라이브러리 사용), "실행 파일은 커널 버전

"해당 GNU/Linux 2.6.9 부분에 특히 관심이 있습니다. 무엇을 결정합니까?

gcc 4.6이 설치되어 있지만 2.6.9 Linux 커널이 있고 다른 하나에는 3.2.0 Linux 커널이있는 두 대의 컴퓨터가 있다는 것을 감안할 때.
2.6.9 컴퓨터에서 .o 또는 .a 파일을 컴파일 한 다음 3.2.0 컴퓨터로 가져 와서 빌드 된 파일에 링크 할 수 있습니까? 내가 링크하면, 내 실행 파일의 커널 버전은 여전히 ​​3.2.0입니까?

답변

1

이것은 컴퓨터에서 가져온 커널 버전이며 이진 파일은 빌드 프로세스 중에 컴파일되고 패키지되었습니다. 이것은 가능한 복제물입니다. link

+0

@ JohannesWeiß의 대답은 흥미 롭습니다. 그러나 나는 그것이 내 질문의 핵심을 다루지 않았다고 생각합니다. 예를 들어 커널 버전이 바이너리가 컴파일 된 컴퓨터에서 나온 것이라고 가정합니다. 어떤 "바이너리"를 말하는 겁니까? 2.6.9 리눅스 커널에서 컴파일 된'.o' 또는'.a' 파일을 3.2.0 리눅스 커널에서 바이너리 컴파일 과정에 연결하면 어떻게됩니까? –

+0

파일 명령은 3.2.0을 빌드/링크/실행중인 커널의 버전으로 표시해야한다고 생각합니다. – askb