다른 컴파일러 (gcc, microsoft vC++, borland 등) 및 다른 플랫폼 (Win, Linux, Mac) 용 C/C++ 프로젝트 용 makefile을 생성 할 수있는 도구를 찾고 있습니다.메이크 파일 생성을위한 좋은 도구가 있습니까?
답변
다른 제안을 고려 :
Scons는 크로스 플랫폼, 크로스 컴파일러 빌드 라이브러리, 파이썬가 scruipting 사용 빌드 시스템. 다양한 대형 프로젝트에서 사용되며 성능이 뛰어납니다.
Qt를 사용하는 경우 QMake도 멋진 빌드 시스템입니다.
CMake도 꽤 좋습니다. 마지막으로
- , If all else fails...
Automatic Makefile Generator을 사용해 보셨습니까?
그것은 다음과 같은 컴파일러에 대한 지원: 당신이 할 수 있습니다
Borland 3.1 Borland 5.0 Borland 5.0, 16 bit Borland 5.5 Borland 5.6 Borland 5.8 CC Gnu g++ Gnu g++, dynamic library Intel 5, 6, 7 for Linux Intel 5, 6, 7 for Linux, dynamic library Intel 5, 6, 7 for windows Intel 8,9,10 for Linux Intel 8,9,10 for Linux, dynamic library Intel 8,9 for windows Intel 10 for windows Visual C++ 5 Visual C++ 6, 7, 7.1 Visual C++ 8 Open Watcom Watcom 10A Watcom 10A, 16 bit
또한 두 번째 CMake는 것이다. 나는 멀티 플랫폼 프로젝트에서 이것을 꽤 오랫동안 사용 해왔고 매우 만족합니다.
고려해야 할 한 가지 문제는 "makefile"작성자 또는 대체 빌드 시스템을 원하십니까? 대체 빌드 시스템의 문제점은 일반적으로 사용자가 기대하는 플랫폼 (Visual C++)에 대해 좋은 IDE 통합을 얻지 못한다는 것입니다. 대체 빌드 시스템 대신 makefile 작성자가 필요하면 MPC을 살펴보십시오. 그것은 무료이며 오픈 소스입니다.
전에 성공적으로 Bakefile을 사용했습니다. 그것은 매우 간단하고 잘 작동하는 것 같습니다.
(M | m) akefiles의 자동 생성은 내가 당신이 여기서하려고하는 것에 대해 걱정하게 만듭니다.
make를 입력 할 때 무엇이 계속되는지 이해하고 있습니까? 또는 gmake? 나는 새로운 코드 변경이 빌드에 통합되지 않는 등 일이 깨지는 경우에 발생하지 않은 작업을 시도하는 데 어려움을 겪을 것이기 때문에 단지 묻는 것입니다.
make를 이해하기 시작하려면 Robert Mecklenberg가 "Managing Projects with GNU Make"이라는 단어를 읽도록 제안 할 수 있습니까? 초기 장에서는 make가 작동하는 방법에 대해 설명합니다. make가 backward chaining이라는 사실을 들었을 때 당신이 할 수있는 가장 큰 일 중 하나입니다.
만약 당신이하지 않으면 시스템이 작동하는 것처럼 보일 것이며, Pragmatic Programmers의 용어 인 "programming by coincidence"을 사용하게 될 것입니다. (- :!.. 자신의 사이트에서
BTW 위대한 기사 사용할 수 그리고 그들과 함께 참여하고 있지 않다 YMMV 야다 - 궁시렁은 ...
CMake 실제로 진짜 비주얼 스튜디오 프로젝트를 생성 할 수있는 유일한 도구 (이다 즉, "Makefile"- 외부 도구를 불러내는 프로젝트가 아니며) 빌드 입력 파일 (CMakeLists.txt)이 변경 될 때 프로젝트를 자동으로 다시 생성하는 기능을 제공합니다. SCons 메일 링리스트에.
나는 OMake에 투표 할 것입니다. GNU make와 관련하여 불만을 고쳤습니다.
- 완전한 언어입니다.
- 은 타임 스탬프 대신 MD5를 사용합니다.
- 은 find, sed, awk 등 모든 플랫폼에서 가장 유용한 유닉스 명령을 구현하는 최소 쉘을 제공합니다 ...
- 은 유닉스 또는 DOS 스타일 경로 이름과 함께 작동합니다.
- 이 광범위하게 문서화되어 있습니다.
- 은 병렬 빌드를 지원합니다.
- 빨리.
최근에 make 교체 목록에 추가 된 것은 waf입니다. 개인적인 경험에서 SCONS는 그 일을 꽤 잘합니다.
더 이상이 질문에 관심이 있는지 모르겠습니다. Ruby를 사용하여 개발 한 CodeMate과 비슷한 Makefile 자동 생성기 프로젝션에 대해 연구 중입니다. 어쩌면 지금은 큰 응용 프로그램을위한 성숙 아니지만, 나는 그것을 더 잘 만들기 위해 노력하고 있습니다. 사용자는 소프트웨어를 빌드하기 위해 구성 파일을 편집 할 필요가 없으며 적어도 그렇게되어 있어야합니다. 학습 곡선을 최소화해야합니다.
또 다른 죽은 SO 링크! 필자는 수동으로 GitHub 페이지로 갔고, CodeMate는 Fortran 전용 빌드입니다. 같은 이름의 다른 프로젝트를 만들었습니까? [This] (https://github.com/shepherddog/CodeMate)는 그것이 의미하는 것처럼 보입니다. – refi64