![]() Under certain conditions*, the compiler param in the command field of the compile_commands.json is a relative path rather than absolute. When this happens, the built-ins detection was not successful and the following exception was thrown: !ENTRY org.eclipse.cdt.core 4 0 2025-02-23 20:32:10.752 !MESSAGE Error: Cannot run program "gcc": Launching failed !STACK 0 java.io.IOException: Cannot run program "gcc": Launching failed at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:450) at org.eclipse.cdt.utils.spawner.Spawner.<init>(Spawner.java:147) at org.eclipse.cdt.utils.spawner.Spawner.<init>(Spawner.java:134) at org.eclipse.cdt.utils.spawner.ProcessFactory$Builder.start(ProcessFactory.java:273) at org.eclipse.cdt.utils.spawner.ProcessFactory.exec(ProcessFactory.java:366) at org.eclipse.cdt.core.CommandLauncher.execute(CommandLauncher.java:189) at org.eclipse.cdt.jsoncdb.core.internal.builtins.CompilerBuiltinsDetector.detectBuiltins(CompilerBuiltinsDetector.java:111) at org.eclipse.cdt.jsoncdb.core.CompileCommandsJsonParser.detectBuiltins(CompileCommandsJsonParser.java:290) at org.eclipse.cdt.jsoncdb.core.CompileCommandsJsonParser.processJsonFile(CompileCommandsJsonParser.java:193) at org.eclipse.cdt.jsoncdb.core.CompileCommandsJsonParser.parse(CompileCommandsJsonParser.java:455) at org.eclipse.cdt.cmake.core.CMakeBuildConfiguration.processCompileCommandsFile(CMakeBuildConfiguration.java:361) at org.eclipse.cdt.cmake.core.CMakeBuildConfiguration.build(CMakeBuildConfiguration.java:241) This meant that source file includes were not indexed and could not be opened using Open Declaration (F3) and info markers of the following type appeared in the Problems view: gcc -E -P -dM -Wp,-v "...extCmakegcc\\build\\cmake.run.win32.x86_64.Local\\detect_compiler_builtins.c" Cannot run program "gcc": Launching failed Error: Program "gcc" not found in PATH PATH=[...] extCmakegcc Unknown Compiler Builtins Detector Problem gcc -E -P -dM -Wp,-v "...extCmakegcc\\build\\cmake.run.win32.x86_64.Local\\detect_compiler_builtins.c" Cannot run program "gcc": Launching failed This patch fixes the environment issue for Core Build projects, by calling ICBuildConfiguration.setBuildEnvironment(Map<String, String>) as part of the built-ins detection setup, thereby supporting absolute and relative compiler paths. Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-011 Source code navigation and Built-ins detection *: CMake produces relative compiler path When the CMAKE_<LANG>_COMPILER variable (eg CMAKE_C_COMPILER) is set in the CMakeLists.txt *after* the project() or language commands, it causes a relative path to be used. For example, in the CMakeLists.txt below, gcc is set after project() command: cmake_minimum_required(VERSION 3.10) project (track2) set(CMAKE_C_COMPILER gcc) add_executable(${PROJECT_NAME} track2.c) The above script creates a relative compiler path in compile_commands.json: "command": "gcc -O3 -DNDEBUG -o ... Normally the CMAKE_C_COMPILER variable should be set before the project() comannd. "command": "C:\\msys64\\mingw64\\bin\\c++.exe -IC... Co-authored-by: Jonah Graham <jonah@kichwacoders.com> |
||
---|---|---|
.github | ||
.mvn | ||
build | ||
cmake | ||
codan | ||
core | ||
cross | ||
debug | ||
doc | ||
docker | ||
dsf | ||
dsf-gdb | ||
FAQ | ||
images | ||
jenkins/pod-templates | ||
jsoncdb | ||
jtag | ||
launch | ||
launchbar | ||
llvm | ||
memory | ||
native | ||
NewAndNoteworthy | ||
releng | ||
remote | ||
terminal | ||
testsrunner | ||
tools.templates | ||
unittest | ||
util | ||
visualizer | ||
windows | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.project | ||
BUILDING.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Downloads.md | ||
GitHubMigration.md | ||
Jenkinsfile | ||
LICENSE | ||
NOTICE.md | ||
POLICY.md | ||
pom.xml | ||
README.md | ||
StandaloneDebugger.md | ||
TESTING.md |
Eclipse CDT™ C/C++ Development Tools

The Eclipse CDT™ Project provides a fully functional C and C++ Integrated Development Environment based on the Eclipse platform. Features include: support for project creation and managed build for various toolchains, standard make build, source navigation, various source knowledge tools, such as type hierarchy, call graph, include browser, macro definition browser, code editor with syntax highlighting, folding and hyperlink navigation, source code refactoring and code generation, visual debugging tools, including memory, registers, and disassembly viewers.
Highlights of recent releases and release notes are available in the New & Noteworthy.
See also https://projects.eclipse.org/projects/tools.cdt and https://eclipse.org/cdt

Download
The recommended way to obtain Eclipse CDT is to download it as part of the complete Eclipse IDE for C/C++ Developers or Eclipse IDE for Embedded C/C++ Developers from the main Eclipse IDE download site.
Alternatively Eclipse CDT can be installed into an existing Eclipse installation using this p2 URL: https://download.eclipse.org/tools/cdt/releases/latest/
(see how)
Download Development Builds
Milestone builds of the Eclipse IDE for C/C++ Developers or Eclipse IDE for Embedded C/C++ Developers can be found on the Eclipse Downloads page by clicking on the Eclipse Developer Builds tab (only present when there is a milestone build newer than the latest release).
Alternatively, milestone builds of Eclipse CDT can be installed into an existing Eclipse installation using one of the p2 URLs in: https://download.eclipse.org/tools/cdt/builds (see how). See cdt.aggrcon for which milestone is currently contributed to Eclipse SimRel.
Bleeding edge continuous (aka nightly) builds are available for the main branch from the p2 software repository: https://download.eclipse.org/tools/cdt/builds/cdt/main/
Download older versions
Downloads links for older versions are available in Downloads.
Help & Support
The Eclipse CDT (C/C++ Development Tools) User Guide can be found in the Eclipse Help - C/C++ Development User Guide.
The Eclipse forum for C/C++ IDE (CDT) is for users to ask questions on how to use Eclipse CDT. It is monitored by fellow users in the community for support. Stack Overflow also has an eclipse-cdt tag that can be added to questions or searched for prevous similar questions.
The Eclipse CDT Plug-in Developer Guide can also be found in the Eclipse Help - CDT Plug-in Developer Guide.
There is an FAQ covering many commonly asked questions for both user and developers and a Contribution Guide for guidance on editing Eclipse CDT's source and submitting changes.
Reporting issues
Please report issues in the GitHub issue tracker.
Vendor Supplied Eclipse CDT
Did you get your version of Eclipse CDT from a vendor (such as a chip maker)? If so, they generally support their customers. In that case issues and support questions should be directed at the vendor in the first instance.
We encourage all vendors who are extending and redistributing Eclipse CDT to engage with the project and contribute fixes and improvements back to the Eclipse CDT project.
CDT LSP (LSP based C/C++ Editor)
The Eclipse CDT project also provides an LSP based C/C++ Editor. Please see the CDT LSP repo for more details on that project and the future plans for language server protocol and clangd support in Eclipse CDT.
Contributing
Contributions are always welcome!
Please bear in mind that this project is almost entirely developed by volunteers. If you do not provide the implementation yourself (or pay someone to do it for you), the bug might never get fixed. If it is a serious bug, other people than you might care enough to provide a fix.
Add-ons for CDT
There are many third-party addons for CDT to make it more productive.
- CDT LSP: LSP based C/C++ Editor provided by the Eclipse CDT project
- cmake4eclipse: This Eclipse plug-in automatically generates build-scripts for the Eclipse CDT managed build system from CMake scripts.
- Sloeber: Eclipse Plugins based on Arduino toolchains or a enhanced Arduino IDE.
- SonarQube for Eclipse: Eclipse plug-in for static analysis for quality and security issues in your C/C++ code directly inside the IDE.
- CUTE: C++ unit testing plug-in
- Bracketeer: Auto-comments on closing brackets and highlight of matching/mismatching brackets
- And many more in the Eclipse Marketplace, for example, try the CDT tag
Have a tool that you want listed here? Please open a PR
Code of Conduct
This project follows the Eclipse Community Code of Conduct.
Migration from Gerrit, Bugzilla, Wiki, Eclipse Forums
In the summer of 2022 the Eclipse CDT project migrated from Gerrit, Bugzilla, Wiki, Eclipse Forums to GitHub based solutions. Please see GitHub Migration for more details.