Build wrapper and comile-commands conflict in Eclipse CDT

Please provide

  • Operating system: Linux
  • IDE name and version: eclipse-cdt 2026-06
  • SonarQube for Eclipse plugin version: 12.7.0.84850
  • Programming language you’re coding in: C++
  • Is connected mode used: yes
    • SonarQube Server v2026.4.1

And a thorough description of the problem / question:

After updating Eclipse, Sonar for SonarQube for Eclipse and SonarQube server, I’m unable to analyze C++ files in the IDE. The plugin complains that I have enabled both sonar.cfamily.build-wrapper-output and compile-sonar.cfamily.commands:


One configuration property is expected, 2 were found:
  "sonar.cfamily.build-wrapper-output"
  "sonar.cfamily.compile-commands"


Error executing sensor: 'CFamilyTaintAnalysis'

java.lang.UnsupportedOperationException: 

One configuration property is expected, 2 were found:
  "sonar.cfamily.build-wrapper-output"
  "sonar.cfamily.compile-commands"


	at com.sonar.cpp.plugin.AnalysisConfiguration.setupAnalysisConfigurationMode(AnalysisConfiguration.java:1184)
	at com.sonar.cpp.plugin.AnalysisConfiguration.setupPluginPropertiesConfig(AnalysisConfiguration.java:182)
	at com.sonar.cpp.plugin.AnalysisConfiguration.<init>(AnalysisConfiguration.java:154)
	at com.sonar.cpp.plugin.CFamilyTaintAnalysisSensor.initializeTaintAnalysisSensor(CFamilyTaintAnalysisSensor.java:177)
	at com.sonar.cpp.plugin.CFamilyTaintAnalysisSensor.execute(CFamilyTaintAnalysisSensor.java:100)
	at org.sonarsource.sonarlint.core.analysis.container.analysis.sensor.SensorsExecutor.lambda$executeSensor$1(SensorsExecutor.java:102)
	at org.sonarsource.sonarlint.core.commons.tracing.Trace.startChild(Trace.java:63)
	at org.sonarsource.sonarlint.core.analysis.container.analysis.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:102)
	at org.sonarsource.sonarlint.core.analysis.container.analysis.sensor.SensorsExecutor.executeSensors(SensorsExecutor.java:93)
	at org.sonarsource.sonarlint.core.analysis.container.analysis.sensor.SensorsExecutor.execute(SensorsExecutor.java:81)
	at org.sonarsource.sonarlint.core.analysis.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:122)
	at org.sonarsource.sonarlint.core.commons.tracing.Step.executeTransaction(Step.java:42)
	at org.sonarsource.sonarlint.core.commons.tracing.Trace.lambda$startChildren$0(Trace.java:76)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at org.sonarsource.sonarlint.core.commons.tracing.Trace.startChildren(Trace.java:76)
	at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.startComponents(SpringComponentContainer.java:183)
	at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.execute(SpringComponentContainer.java:164)
	at org.sonarsource.sonarlint.core.analysis.container.module.ModuleContainer.analyze(ModuleContainer.java:77)
	at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.doRunAnalysis(AnalyzeCommand.java:198)
	at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.doExecute(AnalyzeCommand.java:148)
	at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.execute(AnalyzeCommand.java:139)
	at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.lambda$execute$0(AnalyzeCommand.java:131)
	at org.sonarsource.sonarlint.core.commons.progress.TaskManager.runExistingTask(TaskManager.java:47)
	at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.execute(AnalyzeCommand.java:130)
	at org.sonarsource.sonarlint.core.analysis.AnalysisScheduler.executeQueuedCommands(AnalysisScheduler.java:81)
	at java.base/java.lang.Thread.run(Thread.java:1583)


I checked sonar-project.properties in my eclipse-workspace directory and there are no references to build wrapper.

The analyses is started with the following arguments (take from Eclipse console):

Starting analysis with configuration: [
  baseDir: /home/kyku/eclipse-workspace/VLTcommon
  extraProperties: {sonaranalyzer.security.cs.pluginVersion=11.38.0.47694, sonar.cs.ignoreHeaderComments=true, sonar.c.file.suffixes=.c,.h, sonar.typescript.file.suffixes=.ts,.tsx,.cts,.mts, sonar.ai.codefix.hidden=false, sonar.architecture.enable=true, sonar.groovy.file.suffixes=groovy,gvy,gy,gsh, sonar.vbnet.analyzer.security.pluginVersion=11.38.0.47694, sonar.powershell.file.suffixes=ps1,psm1,psd1, sonar.secrets.excluded.file.suffixes=.adoc,.md,.mdx,.dist,.html,.example,.sample,.template, sonar.python.xunit.skipDetails=false, sonar.ipynb.file.suffixes=ipynb, sonar.alerts.tasks.volume.threshold.minutes=60, sonar.plsql.jdbc.driver.class=oracle.jdbc.OracleDriver, sonar.javascript.html.file.suffixes=.html,.htm,.xhtml, sonar.auth.gitlab.allowAllGroups=false, sonar.auth.saml.signature.enabled=false, sonar.autodetect.ai.code=true, sonar.go.exclusions=**/vendor/**,**/*.pb.go,**/*.pb.gorm.go, sonar.issues.issueResolution.global.enabled=false, sonar.terraform.file.suffixes=.tf, sonar.forceAuthentication=true, sonar.issues.sandbox.default=false, sonar.notifications.delay=60, sonar.cpp.file.suffixes=.cc,.cpp,.cxx,.c++,.hh,.hpp,.hxx,.h++,.ipp,.ixx,.mxx,.cppm,.ccm,.cxxm,.c++m, sonar.secrets.disableEntropyFilter=false, sonar.multi-quality-mode.enabled=true, sonar.rust.file.suffixes=.rs, sonaranalyzer-cs.ruleNamespace=SonarAnalyzer.Enterprise.CSharp, sonar.cs.analyzeGeneratedCode=false, sonar.azureresourcemanager.file.identifier=https://schema.management.azure.com/schemas/,http://schema.management.azure.com/schemas/, sonar.java.jvmframeworkconfig.file.patterns=**/src/main/resources/**/*app*.properties,**/src/main/resources/**/*app*.yaml,**/src/main/resources/**/*app*.yml, sonar.builtInQualityProfiles.disableNotificationOnUpdate=false, sonar.css.file.suffixes=.css,.less,.scss,.sass, sonar.vbnet.analyzer.security.pluginKey=securityvbnetfrontend, sonar.cpd.abap.minimumTokens=100, sonar.docker.file.patterns=*.dockerfile,Dockerfile,dockerfile, sonar.html.file.suffixes=.html,.xhtml,.cshtml,.vbhtml,.aspx,.ascx,.rhtml,.erb,.shtm,.shtml,.cmp,.twig,.htm, sonar.auth.gitlab.enabled=false, sonar.cpd.cross_project=false, sonar.vbnet.ignoreHeaderComments=true, sonar.cfamily.compile-commands=/home/kyku/eclipse-workspace/compile_commands.json, sonar.auth.github.groupsSync=false, sonar.vbnet.analyzer.dotnet.pluginKey=vbnetenterprise, sonar.dre.powershell.activate=true, sonar.scala.file.suffixes=.scala, sonar.cloudformation.activate=true, sonar.alerts.tasks.age.threshold.minutes=60, sonar.cs.analyzer.architecture.staticResourceName=SonarAnalyzer.Architecture-3.0.1.10584.zip, sonar.dbcleaner.daysBeforeDeletingScannerCache=7, sonaranalyzer-vbnet.ruleNamespace=SonarAnalyzer.Enterprise.VisualBasic, sonar.jreAutoProvisioning.disabled=false, sonar.cloudformation.file.identifier=AWSTemplateFormatVersion, sonar.dbcleaner.daysBeforeDeletingAnticipatedTransitions=30, sonar.javascript.ignoreHeaderComments=true, sonar.dbcleaner.daysBeforeDeletingClosedIssues=30, sonar.java.enablePreview=False, sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByMonth=52, sonar.lf.gravatarServerUrl=https://secure.gravatar.com/avatar/{EMAIL_MD5}.jpg?s={SIZE}&d=identicon, sonar.cs.analyzer.security.pluginVersion=11.38.0.47694, sonar.go.activate=true, sonar.mcp.enabled=true, sonar.gessie.url=https://telemetry.sonarsource.com/server, sonar.secrets.disableTestFileDetection=false, sonar.notifications.runningDelayBeforeReportingStatus=600, sonar.jsp.file.suffixes=.jsp,.jspf,.jspx, sonar.javascript.maxFileSize=1000, sonar.javascript.environments=amd,applescript,atomtest,browser,commonjs,embertest,greasemonkey,jasmine,jest,jquery,meteor,mocha,mongo,nashorn,node,phantomjs,prototypejs,protractor,qunit,serviceworker,shared-node-browser,shelljs,webextensions,worker, sonar.javascript.createTSProgramForOrphanFiles=true, sonar.scm.disabled=false, sonar.ruby.exclusions=**/vendor/**, sonar.dart.file.suffixes=.dart, sonar.ansible.activate=true, sonar.auth.saml.enabled=false, sonar.vbnet.file.suffixes=.vb, sonar.cs.analyzer.security.staticResourceName=SonarAnalyzer.Security.CSharp-11.38.0.47694.zip, sonar.core.id=4F833BF3-AZGdluScBmEmCSxlG3eW, sonar.abap.file.suffixes=.abap,.ab4,.flow,.asprog, sonar.cfamily.ignoreHeaderComments=true, sonar.vbnet.analyzer.dotnet.pluginVersion=10.29.0.143774, sonar.technicalDebt.developmentCost=30, sonar.validateWebhooks=true, sonar.azurepipelines.activate=true, sonar.python.file.suffixes=py, sonar.cs.file.suffixes=.cs,.razor, sonar.json.exclusions=**/package-lock.json,**/packages.lock.json,**/deno.lock.json, sonar.mcp.healthCheckInterval=30, sonar.plsql.file.suffixes=sql,pks,pkb, sonaranalyzer.security.cs.ruleNamespace=SonarAnalyzer.Security.CSharp, sonar.allowPermissionManagementForProjectAdmins=true, sonar.rust.clippy.offline=false, sonar.text.inclusions.activate=true, sonaranalyzer-vbnet.staticResourceName=SonarAnalyzer-vbnetenterprise-10.29.0.143774.zip, sonar.githubactions.activate=true, sonar.java.file.suffixes=.java,.jav, sonar.kotlin.file.suffixes=.kt,.kts, sonar.php.file.suffixes=php,php3,php4,php5,phtml,inc, sonar.xml.file.suffixes=.xml,.xsd,.xsl,.config, sonar.dbcleaner.weeksBeforeDeletingAllSnapshots=260, sonar.azureresourcemanager.activate=true, sonar.shell.activate=true, sonar.updatecenter.cache.ttl=3600000, sonar.dre.ruby.activate=true, sonar.report.partMaxSizeMBytes=450, sonar.auth.bitbucket.allowUsersToSignUp=true, sonar.secrets.disableKnownFakeSecretFilter=false, sonar.auth.github.enabled=false, sonar.python.coverage.reportPaths=coverage-reports/*coverage-*.xml, sonar.text.activate=true, provisioning.gitlab.enabled=false, sonar.go.file.suffixes=.go, sonar.cs.analyzeRazorCode=true, sonar.auth.saml.applicationId=sonarqube, sonar.dbcleaner.weeksBeforeKeepingOnlyAnalysesWithVersion=104, sonar.javascript.disableTypeChecking=false, sonar.qualitygate.ignoreSmallChanges=true, sonar.yaml.activate=false, sonar.php.exclusions=**/vendor/**, sonar.issues.sandbox.enabled=false, sonar.rust.clippy.enabled=true, sonar.swift.file.suffixes=.swift, sonar.issues.sandbox.override.enabled=false, sonar.vbnet.roslyn.ignoreIssues=false, sonar.plsql.ignoreHeaderComments=false, sonar.flex.file.suffixes=as, sonar.alerts.tasks.failure_rate.threshold.minutes=60, sonar.scm.provider=svn, sonar.json.activate=false, sonar.filesize.limit=20, sonar.auth.gitlab.groupsSync=false, sonar.auth.github.apiUrl=https://api.github.com/, sonar.ruby.file.suffixes=.rb, sonar.auth.github.allowUsersToSignUp=true, sonar.postgres.file.suffixes=pgsql,psql, sonar.issues.issueResolution.enabled=false, sonar.kubernetes.helm.activate=true, sonar.python.xunit.reportPath=xunit-reports/xunit-result-*.xml, sonar.alerts.tasks.age.threshold.value=30, sonar.alerts.enabled=true, sonar.javascript.globals=angular,goog,google,OpenLayers,d3,dojo,dojox,dijit,Backbone,moment,casper,_,sap, sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay=24, sonar.yaml.file.suffixes=.yaml,.yml, sonar.dbcleaner.daysBeforeDeletingInactiveBranchesAndPRs=30, sonar.auth.bitbucket.enabled=false, sonar.cs.analyzer.architecture.pluginKey=architecturecsharpfrontend, sonar.terraform.activate=true, sonar.alerts.tasks.failure_rate.threshold.value=50, sonar.auth.github.webUrl=https://github.com/, sonar.dbcleaner.branchesToKeepWhenInactive=main,master,develop,trunk, sonar.php.frameworkDetection=true, sonar.dre.postgres.activate=true, sonar.cs.analyzer.dotnet.pluginVersion=10.29.0.143774, sonaranalyzer-vbnet.pluginVersion=10.29.0.143774, sonaranalyzer.security.cs.analyzerId=SonarAnalyzer.Security.CSharp, sonar.alerts.tasks.volume.threshold.value=50, sonar.cfamily.build-wrapper-output=/home/kyku/eclipse-workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/VLTcommon/org.sonarlint.eclipse.core/sonarlint6401836815912529760, sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByWeek=4, sonaranalyzer-vbnet.analyzerId=SonarAnalyzer.Enterprise.VisualBasic, sonar.cs.roslyn.ignoreIssues=false, sonar.javascript.yaml.file.suffixes=.yml,.yaml, sonaranalyzer-cs.pluginKey=csharpenterprise, sonar.kubernetes.activate=true, sonar.java.ignoreUnnamedModuleForSplitPackage=False, sonar.vbnet.analyzer.dotnet.staticResourceName=SonarAnalyzer-vbnetenterprise-10.29.0.143774.zip, sonar.json.file.suffixes=.json, sonaranalyzer.security.cs.pluginKey=securitycsharpfrontend, sonar.cfamily.useCache=false, sonar.auth.saml.providerName=SAML, sonar.vbnet.analyzer.security.staticResourceName=SonarAnalyzer.Security.VisualBasic-11.38.0.47694.zip, provisioning.github.project.visibility.enabled=true, sonar.objc.file.suffixes=.m, sonar.text.inclusions=**/*.sh,**/*.bash,**/*.zsh,**/*.ksh,**/*.ps1,**/*.properties,**/*.conf,**/*.pem,**/*.config,**/*.env,.aws/config,**/*.key, sonar.ruby.coverage.reportPaths=coverage/.resultset.json, sonar.javascript.css.additional.file.suffixes=.vue,.html,.htm,.xhtml, sonar.qualityProfiles.allowDisableInheritedRules=true, sonaranalyzer-cs.staticResourceName=SonarAnalyzer-csharpenterprise-10.29.0.143774.zip, sonar.auth.gitlab.allowUsersToSignUp=true, sonar.projectCreation.mainBranchName=main, sonar.cs.analyzer.dotnet.staticResourceName=SonarAnalyzer-csharpenterprise-10.29.0.143774.zip, sonar.dre.groovy.activate=true, sonar.authenticator.downcase=false, sonaranalyzer-cs.analyzerId=SonarAnalyzer.Enterprise.CSharp, sonar.exclusions=**/*.xml,install/**,egaming2/object/**, sonar.cs.analyzer.dotnet.pluginKey=csharpenterprise, sonar.cfamily.generateComputedConfig=false, sonar.cs.analyzer.security.pluginKey=securitycsharpfrontend, sonar.technicalDebt.ratingGrid=0.05,0.1,0.2,0.5, sonar.groovy.file.patterns=*Jenkinsfile, sonar.cs.analyzer.architecture.pluginVersion=3.0.1.10584, sonar.lf.enableGravatar=false, sonar.docker.activate=true, sonaranalyzer-cs.pluginVersion=10.29.0.143774, sonaranalyzer.security.cs.staticResourceName=SonarAnalyzer.Security.CSharp-11.38.0.47694.zip, sonar.developerAggregatedInfo.disabled=false, sonar.plugins.downloadOnlyRequired=true, sonar.azureresourcemanager.file.suffixes=.bicep, sonar.javascript.file.suffixes=.js,.jsx,.cjs,.mjs,.vue, sonar.cpd.abap.minimumLines=20, sonar.shell.file.suffixes=.sh,.bash, sonar.vbnet.analyzeGeneratedCode=false, sonar.plugins.risk.consent=NOT_ACCEPTED, sonar.auth.gitlab.url=https://gitlab.com, sonar.scanner.skipNodeProvisioning=false, sonaranalyzer-vbnet.pluginKey=vbnetenterprise, sonar.java.jvmframeworkconfig.activate=true, sonar.updatecenter.url=https://downloads.sonarsource.com/sonarqube/update/update-center.properties, sonar.tsql.file.suffixes=.tsql, sonar.core.startTime=2026-08-18T13:13:57+0000}
  activeRules: [429 cpp, 40 css, 371 python, 202 c, 30 scala, 129 kotlin, 11 pythonbugs, 59 tsql, 353 secrets, 410 javascript, 33 pythonenterprise, 132 plsql, 29 ruby, 561 java, 61 Web, 24 xml, 176 php, 8 javabugs, 423 typescript, 66 abap]
  inputFiles: [
    file:/home/kyku/eclipse-workspace/foo.cpp (UTF-8) [cpp]
  ]
]

When I started using sonar I used use the build wrapper but has moved to compile_commands.json long time ago and that setup worked perfectly until the recent update.

Hey there,

The Eclipse plug-in automatically generates what is done for the SonarQube Server analysis (using the Sonar Scanner and Build Wrapper executable); it therefore does not work with any custom property set for the Compilation Database. The generation is done based on the context of the Eclipse CDT plug-in.
Therefore, the Eclipse plug-in requires no manual setting of properties to work.

The plug-in also does not pick up anything from sonar-project.properties; therefore, be so kind as to check whether the property sonar.cfamily.compile-commands is manually configured by you in:

  1. Eclipse settings → SonarQube → Analyzer Properties
  2. Project settings → SonarQube → Analyzer Properties

If you find an entry there for the property, please remove it. If it is not there or if this does not help, then please provide the full logs from the SonarQube Console.

Cheers :champagne:

Thanks, it did the trick. But is the analysis precise without information from the compile database?

Hey @Krzysztof_Wrzalik,

Thanks for your feedback, and that it is fixed.

I cannot give you a decisive answer to that; I’m sorry. I’m familiar with the Eclipse CDT integration but not with the differences between (or none of) the Build Wrapper and the Compilation Database (anymore).
I have personally not yet encountered any differences myself - I have an Eclipse CDT Headless build for my project relying on the Compilation Database for the SonarScanner analysis while relying on the IDE plug-in build on the generated Build Wrapper for local development.


I would therefore kindly hand this over to someone from the Sonar-C-Analyzer folks to give a better and hopefully more satisfying answer.

Cheers :baby_bottle: