아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
강직한까마귀86
강직한까마귀8621.03.14

C언어의 구동환경? 개발환경이 궁금합니다!?

안녕하세요 C언어의 개발환경에 대해서 공부하고 있는 학부생입니다.

JAVA와 C언어의 차이점에 대해서 찾아보던중에

JAVA라는 언어는 프로그램 개발을 원할 경우에 단순히 컴파일러를 설치하여 실행하는 것으로 끝나는 것이 아닌

JDK를 선행적으로 설치해준 후 이클립스와 같은 툴을 이용해서 개발이 가능한 것으로 알게 되었습니다.

반면에 C언어는 별도의 프로그램의 설치 없이

Visual Studio와 같은 에디터를 설치해주면 바로 프로그램의 개발이 가능한 것으로 압니다.

이유를 찾아보던 중 이게 컴파일언어와 인터프린터 언어의 차이인가 싶었지만

그것도 아닌 것 같아 질문 드려봅니다.

C언어의 개발환경에서도 JAVA의 JDK와 같은 필수 프로그램의 설치가 요구되나요?

아님 OS에서 자체적으로 지원이 되는 건가요?

아니면 JDK가 이식성이 좋은 JAVA의 특성을 위해 JAVA에서만 특별히 요구되는 프로그램인가요?

C언어의 개발환경이나 C언어에서 JDK의 역할을 하는 것은 무엇인가요(런타임 라이브러리?)

OKKY에도 질문해서 좋은 답변들을 받았으나 명쾌히 이해가 안되서 질문올립니다!

답변 주시면 대단히 감사하겠습니다 !!

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자21.03.14

    C언어의 개발환경에서도 Java의 JDK와 같은 필수 프로그램의 설치가 요구되는지 물어보셨습니다.
    Java 의 컴파일 과정에서 만들어지는 파일은 클래스 파일이라고 부릅니다.
    이 클래스 파일(Java Applications)은 시스템에서 바로 실행할 수는 없고 JVM(Java Virtual Machine)이라는 가상 머신(일종의 프로그램)에서 동작하게 됩니다.

    참고로 JDK는 Java Development Kit의 약자로 자바를 개발하기 위한 키트입니다.
    이 JDK는 JRE(Java Runtime Environment)를 포함하고 있습니다. 개발이 아닌 실행만을 위해서라면 JDK가 아닌 JRE만 시스템에 설치되어 있으면 가능합니다.

    C언어의 개발환경에서도 JAVA의 JDK와 같은 필수 프로그램의 설치가 필요한지 질문을 주셨습니다.

    C언어에서 만들어지는 결과물은 지정된 대상(target) 운영체제을 위한 native 파일입니다.
    만약 윈도우에서 Visual Studio의 cl.exe 컴파일러를 이용하여 윈도우 를 target으로 하여 실행파일을 만든다면 윈도우에서 돌아갈 수 있는 PE(Portable Executable) 파일을 생성해 냅니다.
    반면에 macOS 에서는 이와 달리 Mach 커널을 위한 Mach object라는 형태의 파일을 생성합니다.

    하지만 네이티브 오브젝트 파일도 동작을 위해서는 여러 런타임 라이브러리가 필요합니다.
    기본적으로 프로세스를 생성하기 위해 Kernel32.dll 을 필요로 하며 런타임 라이브러리의 사용을 위해서는 NTDLL.dll 이 필요합니다.
    또한 윈도우에서 C나 C++로 프로그램을 만들면 msvcrt.dll 와 같은 C RUNTIME 라이브러리가 필요합니다.

    만약 Java 와 같은 것을 생각해보신다면 윈도우의 닷넷 프레임워크를 생각해보시면 좋을 것 같습니다.
    C#과 같은 CLR(Common Language Runtime, 공통 언어 런타임)에서 동작하는 애플리케이션이 Java와 유사하게 동작하기 때문입니다.