2010-06-14 2 views
4

우리 회사는 "실행 시간"또는 누락으로 인해 소프트웨어가 작동하지 않는 데 항상 문제가 있습니다. 나는 사람들이 이것을 많이 (32 비트 실행 시간, 마이크로 소프트 런타임, 기타 등등) 필요하다고 말한다."실행 시간"이란 정확히 무엇입니까?

정확히 무엇을 언급하고 있습니까? DLL 파일? 다른 뭔가? 아무도 분명히 해줄 수 있습니까?

답변

4

기본적으로 런타임은 코드가 실행되는 시간입니다 (컴파일 타임 또는 링크 타임과 반대).

당신이 보는 컨텍스트에서는 런타임 라이브러리, 즉 프로그램을로드하는 데 필요한 라이브러리를 의미합니다.

정적으로 링크 된 코드가 누락 될 수 없으므로 동적으로 링크 된 항목 (DLL 또는 공유 객체)입니다 (실행 파일 자체에 있음).

전형적인 예는 Microsoft의 C 런타임 또는 .NET 라이브러리에 의존하지만 제품과 함께 제공하지 않는 것입니다. 즉, 실행 파일은 Visual Studio가 설치된 라이브러리 등의 라이브러리가있는 컴퓨터에서 실행되지만 코드를 실행하려는 모든 컴퓨터에서 실행될 필요는 없습니다.

정적 링크와 동적 링크의 차이점에 대해 here 님의 질문에 답변 해주었습니다. 동적 연결을 사용하면 다시 컴파일하거나 다시 링크하지 않고도 응용 프로그램의 특정 부분을 업데이트 할 수 있습니다. 새 버전의 DLL을 삭제하면됩니다. 불행히도이 코드를 별도의 파일에두면 실종 될 수 있습니다.

그 원인 중 하나가 될 수 있지만 가장 가능성이 높은 것은 누군가가 설치 코드를 잘 작성하지 않았다는 것입니다. 그렇지 않으면 필요한 모든 것이 설치되었을 것입니다.

+0

감사합니다. 그래서 "런타임"은 DLL입니까? (내가 예상 한대로) lib 파일이 없다는 것을 알았지 만, 뭔가 다른 것이있을 것이라고 생각했습니다. 감사합니다. – Russel

+0

예, Windows에서 작동합니다. 그들은 다른 플랫폼에서 다르게 명명되었지만 개념은 같습니다. – paxdiablo

1

그들은 아마도 Microsoft의 타사 라이브러리 및 .NET 프레임 워크를 나타냅니다.

.NET 언어로 작성된 응용 프로그램의 경우 회사 응용 프로그램에서 MFC, ATL 등과 같은 타사 라이브러리를 사용하는 것 같습니다. C#, VB.NET, Java를 사용하여 개발하는 경우 응용 프로그램을 실행하기 위해 설치해야하는 JRE (Java Runtime env)가 있습니다.

고객 컴퓨터에 필요한 dll/프레임 워크가 설치/배포되지 않은 경우 "런타임 오류"가 발생할 수 있습니다.

배포 문제입니다. 올바른 설치 프로세스로 해결할 수 있습니다. 예 : 설치 프로그램은 필요한 프레임 워크가 설치되어 있는지, 설치 프로세스의 일부로 설치하지 않았는지 여부를 확인할 수 있습니다.

3

여기에서 은 runtime library - 공유 라이브러리 (실제로 Windows에서는 DLL)이며 특히 언어의 기본 기능을 제공하는 언어를 가장 일반적으로 가리 킵니다. 그것은 언어 핵심에 "내장 된"것으로 생각되는 기능을 구현합니다. 따라서 런타임 라이브러리가 필요한 컴파일러로 컴파일 된 프로그램은 해당 라이브러리가 설치되어 있지 않은 경우 또는 프로그램이 정적으로 링크 된 경우 (실행 파일에 필요한 모든 항목이 포함 된 경우) 실행되지 않습니다.

관련 문제