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
수 있다filename
a.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
'sourcecode' 카테고리의 다른 글
Vue.js2 - Object.assign({}, this.var)을 차단하는 감시 메서드 (0) | 2022.08.17 |
---|---|
다차원 어레이의 올바른 할당 (0) | 2022.08.17 |
구성 요소에서 내 스토어 개체에 액세스할 수 없음 (0) | 2022.08.17 |
Vue. vuex 상태에 따라 창 닫기 방지 (0) | 2022.08.17 |
Javascript - 날짜/시간을 moment.js로 포맷합니다. (0) | 2022.08.17 |