대화형 컴파일러 탐색 웹사이트입니다. C, C++, C#, F#, Rust, Go, D, Haskell, Swift, Pascal, ispc, Python, Java 또는 기타 30개 이상의 지원되는 언어 구성 요소에서 코드를 편집하고 해당 코드가 컴파일된 후 어떻게 보이는지 확인하세요. 실시간.
버그 신고 · 컴파일러 요청 · 기능 요청 · 언어 요청 · 라이브러리 요청 · 취약점 신고
각 언어에 대해 여러 컴파일러가 지원되고, 다양한 도구와 시각화를 사용할 수 있으며, UI 레이아웃을 구성할 수 있습니다(GoldenLayout 덕분에).
godbolt.org에서 시험해 보거나 자체 로컬 인스턴스를 실행해 보세요. 사이트를 통해 얻을 수 있는 이점, 유용한 이유 및 사용 방법에 대한 개요는 여기에서 확인할 수 있습니다.
컴파일러 탐색기는 개방적이고 환영받는 환경을 조성하는 것을 목표로 하는 행동 강령을 따릅니다.
컴파일러 탐색기는 C++ 구문이 어셈블리 코드로 변환되는 방법을 보여주기 위해 2012년에 시작되었습니다. 한 창에서 vi
실행하는 tmux
세션으로 시작하고 다른 창에서 watch gcc -S foo.cc -o -
.
그 이후로 이 사이트는 매주 3,000,000개 이상의 편집본을 제공하는 공개 웹사이트가 되었습니다.
Patreon, GitHub, Paypal에서 또는 Compiler Explorer 스토어에서 멋진 장비를 구매하여 이 프로젝트를 재정적으로 지원할 수 있습니다.
이제 저장소 위키에 FAQ 섹션이 있습니다. 귀하의 질문이 존재하지 않는 경우, 아래 설명된 대로 문의해 주시면 도움을 드릴 수 있습니다. FAQ에 몇 가지 중요한 사항이 부족하다고 생각되면 언제든지 이에 기여하거나 명확한 설명을 요청하시기 바랍니다.
여러 비디오에서 컴파일러 탐색기의 일부 기능을 보여줍니다.
컴파일러 탐색기 의 향후 계획에 대한 약간의 통찰력을 제공하는 로드맵을 사용할 수 있습니다.
컴파일러 탐색기는 Node.js에서 TypeScript로 작성되었습니다.
호환되는 버전의 node
설치되어 있다고 가정하면, Linux에서는 단순히 make
실행하면 로컬 컴퓨터(http://localhost:10240/)의 포트 10240에서 실행되는 Explorer를 시작하고 실행할 수 있습니다. 그래도 문제가 해결되지 않으면 저희에게 연락해 주세요. 빠르고 쉽게 실행하는 것이 중요하다고 생각하기 때문입니다. 현재 컴파일러 탐색기에서는 경로나 NODE_DIR
(환경 변수 또는 make
매개변수)에 node
20이 설치되어 있어야 합니다.
make EXTRA_ARGS='--language LANG'
로 실행하면 LANG
독점적으로 로드할 수 있습니다. 여기서 LANG
lib/languages.ts
에 정의된 언어 ID/별칭에 대한 것입니다. 예를 들어 C++를 지원하는 컴파일러 탐색기 만 실행하려면 make EXTRA_ARGS='--language c++'
실행합니다. 여러 --language
인수를 제공하여 둘 이상의 언어로 제한할 수 있습니다. Makefile
은 실행에 필요한 모든 타사 라이브러리를 자동으로 설치합니다. npm
사용하여 서버 측 및 클라이언트 측 구성 요소를 설치합니다.
개발의 경우 make dev
사용하여 파일 변경 시 자동 다시 로드 및 시작 시간 단축과 같은 몇 가지 유용한 기능을 활성화하는 것이 좋습니다.
make dev
컴퓨터에서 작동하지 않는 경우 npm run dev
사용하여 실행할 수도 있습니다.
일부 언어에는 rust
, d
또는 haskell
과 같은 추가 도구가 필요합니다. 이러한 도구는 도구 저장소에 별도로 보관됩니다.
컴파일러 탐색기 구성은 etc/config
디렉터리의 구성 파일을 통해 수행됩니다. 값은 key=value
입니다. {type}.local.properties
파일의 옵션(여기서 {type}
은 c++
또는 이와 유사함)은 {type}.defaults.properties
파일의 모든 항목을 재정의합니다. *.local.*
파일을 무시하는 .gitignore
파일이 있으므로 이 파일은 git에 체크인되지 않으며 git pull
할 때 업데이트된 버전과 씨름하지 않을 것입니다. 자세한 내용은 컴파일러 추가를 참조하세요.
컴파일러 탐색기 에 기여할 수 있는 방법에 대한 자세한 내용은 CONTRIBUTING.md를 확인하고, 사이트에 새 컴파일러나 언어를 추가하는 방법과 같이 수행할 수 있는 다양한 작업에 대한 구체적인 세부 정보는 docs 폴더를 확인하세요.
자체 GCC 또는 유사한 바이너리를 가리키려면 etc/config/LANG.defaults.properties
를 편집하거나 필요에 따라 LANG
대체하여 LANG.local.properties
이름으로 새 바이너리를 만드십시오. *.local.properties
파일은 속성을 로드할 때 우선순위가 가장 높습니다.
godbolt.org와 같은 여러 컴파일러와 언어를 지원하려면 infra 프로젝트에서 bin/ce_install install compilers
명령을 사용하여 컴파일러 전체 또는 일부를 설치할 수 있습니다. 이러한 방식으로 설치된 컴파일러는 etc/config/*.amazon.properties
의 구성을 통해 로드할 수 있습니다. 완전히 오프라인 환경에 배포해야 하는 경우 www.godbolt.ms@443
에서 가져온 구성의 일부 부분을 제거해야 할 수도 있습니다.
기업 설정에서 실행할 때 URL 단축 서비스는 기본 스토리지 드라이버가 사용자 환경에 적합하지 않은 경우 내부 서비스로 대체될 수 있습니다. 이렇게 하려면 lib/shortener/myservice.js
에 새 모듈을 추가하고 구성에서 urlShortenService
변수를 설정하세요. 이 모듈은 단일 함수를 내보내야 합니다. 예를 보려면tinyurl 모듈을 참조하세요.
asm으로 컴파일하고 컴파일러를 나열하는 데 사용할 수 있는 간단한 편안한 API가 있습니다.
여기에서 API 문서를 찾을 수 있습니다.
컴파일러 탐색기의 사용이나 개발에 대해 논의하는 곳인 컴파일러 탐색기 디스코드(Compiler Explorer Discord)를 운영합니다. 우리는 또한 cpplang Slack 채널 #compiler_explorer
에 존재하며 공개 메일링 리스트를 보유하고 있습니다.
디스코드에는 개발 채널이 있고, 개발 메일링 리스트도 있습니다.
추가 도움이 필요한 경우 언제든지 github에 문제를 제기하거나 Matt에게 직접 이메일을 보내주세요.
다음은 컴파일러 탐색기의 공식 도메인입니다.
도메인은 임의의 하위 도메인(예: https://foo.godbolt.org/)을 허용하는데, 이는 각 하위 도메인이 독립적인 로컬 상태를 갖기 때문에 편리합니다. 또한 https://rust.compiler-explorer.com/과 같은 언어 하위 도메인은 해당 언어가 이미 선택된 상태로 로드됩니다.
컴파일러 탐색기는 AUTHORS 파일에 나열된 멋진 사람들에 의해 유지 관리됩니다.
컴파일러 탐색기를 만드는 데 도움을 준 CONTRIBUTORS 파일에 나열된 기여자에게 감사의 말씀을 전하고 싶습니다.
또한 컴파일러 탐색기 에 기여해 주신 다음 분들께 특별히 감사의 말씀을 전하고 싶습니다.
개인과 회사를 막론하고 많은 놀라운 후원자들이 Compiler Explorer에 자금을 지원하고 홍보하는 데 도움을 주었습니다.