2016-08-28 2 views
-1

에 링크하면, 일부 .so와 연결된 프로세스 (pro)를 생성합니다. 일부 컴퓨터에서는 아주 잘 작동합니다. 하지만 한 대의 컴퓨터에서 실행할 수는 없습니다. ldd를 사용하여 프로세스를 확인합니다. ldd pro 많은 중복 .so와 연결됩니다. 여분의 .so는 다른 프로그래머에 의해 작성됩니다.왜 linux (kylin)의 여분의 동적 라이브러리

시스템 변수 LD_LIBRARY_PATH를 설정 했으므로 필요한 경로가 포함되어 있는지 확인하십시오. 컴파일을 통과 할 수 없습니다. (다른 컴퓨터에서도이 코드를 사용해 보겠습니다.)

내 코드가 다른 프로그래머 코드와 섞여있는 이유는 정말 혼란 스럽습니다.

저는 처음으로 질문을합니다. 질문을하는 모든 사람에게 감사드립니다.

+1

"다른 프로그래머 코드"는 무엇을 의미합니까? 당신이 사용하는 도서관은 당신이 직접 쓰셨습니까? 라이브러리가 의존하는 라이브러리는 어떻습니까? 등등? 리눅스 커널과 사용자 공간을 모두 직접 작성 했습니까? 사용자가 작성한 코드의 양은 주어진 순간에 시스템에서 실행중인 모든 코드의 일부분의 일부분에 불과합니다. –

+0

"다른 프로그래머의 코드"는 시스템 코드가 아니라는 것을 의미합니다. 일부 프로세스에서는 동적 라이브러리가 열려 있고 일부는 동적 라이브러리입니다. – user6767180

답변

0

오늘이 문제를 해결했습니다.

먼저 "helloworld"프로그램을 작성했습니다.이 프로그램은 여전히 ​​다른 동적 라이브러리에 링크되어 있습니다. "xxx.so not found와 같이 /usr/lib64/crti.o에 필요합니다"

그러면 'crti.o'파일을 확인합니다. 다른 프로그래머가 실제로 수정했습니다. 많은 동적 라이브러리를 연결했습니다.

이 파일을 다른 컴퓨터로 바꾸면 모든 것이 잘 작동합니다.