programing

MinGW를 사용하여 makefile을 컴파일하려면 어떻게 해야 하나요?

prostudy 2022. 7. 25. 22:17
반응형

MinGW를 사용하여 makefile을 컴파일하려면 어떻게 해야 하나요?

처음 들어봐요.make file을 어떻게 컴파일하는지 여쭤보고 싶어서요.저는 MinGW 컴파일러를 C 언어로 사용하고 있습니다.파일이 다른 디렉토리에 있기 때문에 모든 파일을 MinGW\bin에 저장해야 합니까?

도와주셔서 감사합니다.

http://www.mingw.org/wiki/FAQ에서 발췌:

make와 mingw32-make의 차이점은 무엇입니까?

"원어민" (예:MSVCRT 의존)의 제조 포트는 일부 기능이 결여되어 있으며 Win32의 POSIX가 없기 때문에 기능이 변경되었습니다.MSYS 배포판에는 MSYS 런타임에 의존하는 버전의 make도 있습니다.이 포트는 make가 의도한 대로 동작하기 때문에 실행 시 번거로움이 줄어듭니다.이를 바탕으로 MinGW 개발자/유지관리자/패키지 업체들은 파일 이름 충돌 없이 "네이티브" 버전과 MSYS 버전이 동시에 존재할 수 있도록 네이티브 버전의 이름을 변경하는 것이 최선이라고 결정했습니다.

자, C:\MinGW\bin 디렉토리와 먼저 무엇이 실행 가능 파일을 만드는지 확인합니다.(make.exe 또는 mingw32-make.exe)

MinGW를 사용하기 전에 C:를 추가해야 합니다.\MinGW\bin, http://www.mingw.org/wiki/Getting_Started/에서 설명한 절차를 사용하여 PATH 환경변수로 이동합니다.

다음 using using the makefile cd를 사용합니다.mingw32-make.exe makefile.in 간단히 말해서make.exe makefile.inC:)의 에 따라 .\MinGW\bin).

GUI 기반 솔루션을 원하는 경우 DevCPP IDE를 설치한 후 다시 만듭니다.

MinGW도 있고 mingw32-make도 있어요.C의 내 빈에 exe:\MinGW\bin. Windows 경로에 bin 경로를 추가하는 경우와 동일합니다.그 후 이름을 make.exe로 변경합니다.이제 Makefile 방향으로 명령어를 "make"로 쓰고 Makefile을 Linux와 동일하게 실행할 수 있습니다.

make.exe를 얻으려면 MSYS 설치를 적극적으로 선택해야 합니다.따라서 적어도 (원어민) mingw32-make는 항상 가지고 있어야 합니다.exe를 클릭합니다.MSYS 를 인스톨 했을 경우는, make.exe 가 인스톨 됩니다(MSYS 서브폴더에 있을 가능성이 있습니다).

많은 프로젝트에서 먼저 make 파일을 작성해야 합니다(예를 들어 구성 스크립트 또는 자동 .am 파일 사용). MSYS 또는 sygwin이 필요한 것은 이 단계입니다.왜 굳이 토종 제품을 유통시키려 했는지 궁금해지네요

make 파일이 생성되면 네이티브 실행 파일에 MSYS의 make와 다른 경로 구분자(forward slash vs backward slash)가 필요한지 여부가 불분명해집니다.자동 생성된 모든 makefile은 unix 형식의 경로를 가질 가능성이 높으며, 네이티브 make가 이러한 경로를 처리할 수 있다고 가정하면 컴파일된 출력은 같아야 합니다.

먼저 mingw32-make가 시스템에 설치되어 있는지 확인합니다.mingw32-make 를 사용합니다.확인하려면 Windows 터미널 또는 cmd에서 exe 명령을 사용합니다.그렇지 않으면 mingw32-make-bin 패키지를 설치합니다.

다음으로 bin 디렉토리 기본값(C:\MinGW\bin)으로 이동합니다.create new file make.bat

@echo off
"%~dp0mingw32-make.exe" %*

위의 내용을 추가하여 저장하다

powershell에 환경변수를 설정하다

$Env:CC="gcc"

그런 다음 파일을 컴파일합니다.

make hello

여기서 hello.c는 소스 코드 이름입니다.

automake와 autoconf에 대해 배우세요.

Makefile.am은 자동화에 의해 처리되어 소스를 구축하기 위해 make에 의해 처리되는 Make 파일을 생성합니다.

http://www.gnu.org/software/automake/

여기서 좋은 예를 찾았습니다.https://bigcode.wordpress.com/2016/12/20/compiling-a-very-basic-mingw-windows-hello-world-executable-in-c-with-a-makefile/

이는 Windows에서 MinGW를 사용하는 단순한 Hello.c(gcc 대신 g++와 함께 c++를 사용할 수 있음)입니다.

Makefile의 외관:

EXECUTABLE = src/Main.cpp

CC = "C:\MinGW\bin\g++.exe"
LDFLAGS = -lgdi32

src = $(wildcard *.cpp)
obj = $(src:.cpp=.o)

all: myprog

myprog: $(obj)
    $(CC) -o $(EXECUTABLE) $^ $(LDFLAGS)

.PHONY: clean
clean:
    del $(obj) $(EXECUTABLE)

언급URL : https://stackoverflow.com/questions/11772602/how-to-compile-makefile-using-mingw

반응형