sourcecode

C 실행 파일 이름 결정

copyscript 2022. 8. 17. 23:53
반응형

C 실행 파일 이름 결정

C 프로그램을 컴파일 할 때 출력은 a.out에 저장됩니다.컴파일된 출력을 다른 파일로 리다이렉트하려면 어떻게 해야 합니까?

대부분의 C 컴파일러는 이를 위한 옵션을 제공합니다.-o에 대한 선택권.gcc기타 정보:

gcc -o gentext gentext.c
cc  -o mainprog -Llib -lmymath firstbit.c secondbit.o
xlc -o coredump coredump.c

를 사용하여-o선택.

gcc main.c -o myCoolExecutable.o

프로그램이 1개의 파일로 구성되어 있는 경우, 이것은 괜찮습니다.더 많은 파일이 있다면 사용하는 것이 좋습니다.make: 를 만듭니다.Makefile명령어를 실행합니다.make.

A Makefile는 컴파일 규칙을 포함하는 파일입니다.예를 들면, 다음과 같습니다(#행이 코멘트임을 의미합니다).

CXX = gcc

#CXXFLAGS = -std=c++11
#INC_PATH = ...
#LIBS = ...

SOURCEDIR := yourSourceFolder
SOURCES := $(wildcard $(SOURCEDIR)/*.c)
OBJDIR=$(SOURCEDIR)/obj

OBJECTS := $(patsubst $(SOURCEDIR)/%.c,$(OBJDIR)/%.o, $(SOURCES))
DEPENDS := $(patsubst $(SOURCEDIR)/%.c,$(OBJDIR)/%.d, $(SOURCES))

# ADD MORE WARNINGS!
WARNING := -Wall -Wextra

# .PHONY means these rules get executed even if
# files of those names exist.
.PHONY: all clean

# The first rule is the default, ie. "make",
# "make all" and "make parking" mean the same
all: yourExecutableName

clean:
    $(RM) $(OBJECTS) $(DEPENDS) yourExecutableName

# Linking the executable from the object files
# $^   # "src.c src.h" (all prerequisites)
yourExecutableName: $(OBJECTS)
    $(CXX) $(WARNING) $^ -o $@
    #$(CXX) $(WARNING) $(CXXFLAGS) $(INC_PATH) $^ -o $@ $(LIBS)

-include $(DEPENDS)

$(OBJDIR):
    mkdir -p $(OBJDIR)

$(OBJDIR)/%.o: $(SOURCEDIR)/%.c Makefile | $(OBJDIR)
    $(CXX) $(WARNING) -MMD -MP -c $< -o $@

CXX변수는 컴파일러(gcc, g++),with CXXFLAGS컴파일용 플래그를 정의할 수 있습니다(즉,-std=c++11그런 다음 커스텀을 포함 및 정의할 수 있습니다.INC_PATH그리고.LIBS: 이 예에서는 설정되어 있지 않습니다).와 함께SOURCEDIR소스 코드 디렉토리를 지정할 수 있습니다(여기서*.c파일)을 참조해 주세요.그리고나서SOURCES기본적으로 컴파일용 소스 파일이 확장자를 가진 모든 파일임을 알 수 있습니다.*.c.

Makefile에는 다음과 같은 구조의 규칙 세트가 포함되어 있습니다.

output: inputs
    commandToExecute

실행 파일을 생성하는 규칙은 다음과 같습니다.

yourExecutableName: $(OBJECTS)
    $(CXX) $(WARNING) $^ -o $@

와 동등하다.gcc -Wall -Wextra $(OBJECTS) -o yourExecutableName.

$(OBJECTS)는 컴파일에 의한 오브젝트 파일입니다.위의 규칙이 실행되면 해당 규칙을 찾을 수 없는 경우 make는 파일을 계속 검색하여 해당 규칙을 생성할 규칙을 찾습니다.이 경우 이러한 파일을 생성하는 규칙은 다음과 같습니다.

$(OBJDIR)/%.o: $(SOURCEDIR)/%.c Makefile | $(OBJDIR)
    $(CXX) $(WARNING) -MMD -MP -c $< -o $@

더 필요한 정보가 있으면 알려주세요.

C가 유래한 Unix에서는 C 프로그램은 보통 모듈별로 컴파일되고 컴파일된 모듈은 실행 파일로 링크됩니다.모듈로 구성된 프로젝트의 경우foo.c그리고.bar.c명령어는 다음과 같습니다.

cc -c foo.c
cc -c bar.c
cc -o myprog foo.o bar.o

(-c를 사용하면 출력 파일명이 .o로 치환된 서픽스가 소스 파일이 됩니다).

이를 통해 변경된 모듈만 다시 컴파일할 수 있습니다.이는 큰 프로그램에서는 큰 시간을 절약할 수 있지만 매우 까다로워질 수도 있습니다.(이 부분은 보통 를 사용하여 자동화됩니다.)make.)

싱글 모듈 프로그램의 경우 처음에 .o 파일로 컴파일하고 링크하는 것은 의미가 없습니다.따라서 명령어 하나로 충분합니다.

cc -o foo foo.c

싱글 모듈 프로그램의 경우 .c 서픽스가 없는 C 소스 파일과 같은 실행 가능 프로그램을 호출하는 것이 일반적입니다.멀티 모듈 프로그램의 경우, 메인 기능이 있는 파일의 이름을 따서 출력할 것인지 아닌지에 대한 명확한 커스텀이 없기 때문에, 마음에 드는 것을 자유롭게 발명할 수 있습니다.

-ofilename 수 있다filenamea.out.

설명서에 따르면:

-o <file>  Place the output into <file>

iffoo.또, 「실행 파일」bar.c츠키다

gcc -o foo bar.c

컴파일 방법:

cc -o <opfilename> <filename.c>

실행 방법:

./<opfilename>

C 언어 사용자 선택에 따라 .exe 파일의 이름을 지정하는 형식

순서 1:- 단말기에서 다음 형식으로 gcc(또는 가지고 있는 컴파일러)를 실행합니다.

    gcc -o put_your_name_you_want_to_give (space) your_file_name_you_want_to_execute

주의: - "Vs Code"를 실행하고 있는 경우 자동 완료를 위해 'Tab' 키를 사용합니다.

2단계:- 프로그램 이름을 형식으로 적습니다.

           .\the_name_you_have_given.exe

당신은 해냈어요!

ubuntu에 있는 경우

스텝 1: 다음 명령어로 gcc를 실행하여 컴파일합니다.filename.c

gcc filename.c -o filename.out

  • filename.out되어 있는 가 표시될 도 있고 되지 않을 도 있음 (</FONT CHANGE:></FONT CHANGE:></FONT CHANGE:></FONT CHANGE:></FONT CHANGE:>)가됩니다.

스텝 2: 실행filename.out에 의해

./filename.out

스텝 3: 출력을 기다립니다.

그거야, 넌 끝났어.

언급URL : https://stackoverflow.com/questions/653807/determining-c-executable-name

반응형