c++ - Eclipse CDT 在 Windows 上无法与 cmake 一起正常工作(给出 NullPointerException)
问题描述
我正在尝试在 Windows 10 上使用带有 MinGW 的 Eclipse CDT 2019-06 构建 CMake 项目。
但是在 Eclipse 中创建 cmake 项目后,我无法构建项目,并且控制台显示错误消息,例如“构建未正确配置”。
然后我打开项目的属性窗口,并导航到 CMake 选项。它立即给我一个“计数不接受更改”错误弹出窗口,上面写着“当前显示的页面包含无效值”。CMake 选项右侧的面板完全是空的,而我认为它应该给我一个“Lunch CMake GUI ...”按钮。
然后我打开“错误日志”视图,发现从 org.eclipse.jface 抛出的 java.lang.NullPointerException 具有以下堆栈跟踪:
我已经正确设置了 MinGW、cmake 和 ninja。所以我基本上可以从 windows cmd 窗口运行 gcc、g++、cmake 和 ninja 命令。
我尝试了稍旧的版本 2019-03,但遇到了同样的问题。
java.lang.NullPointerException
at org.eclipse.cdt.cmake.ui.properties.CMakePropertyPage.performOk(CMakePropertyPage.java:165)
at org.eclipse.jface.preference.PreferenceDialog$7.run(PreferenceDialog.java:905)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:176)
at org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog.java:889)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.okPressed(FilteredPreferenceDialog.java:466)
at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:233)
at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:622)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4131)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1056)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3944)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3547)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:153)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:412)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4131)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1056)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3944)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3547)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
解决方案
推荐阅读
- c# - 在 Kendo MVC Grid 中,如何使用本地值进行网格初始化,然后再使用读取操作?
- google-bigquery - 2 TB+ 大小表的 Bigquery Redshift 迁移
- r - 如何提取 colname 使其字面上等于在 R 中写入变量
- python - 使用多个线程将数据写入多个文件
- yii - 获取 Yii 1 中发生错误的主 url
- python - 如何在python中仅展平列表列表的第二级(稍后将其转换为字典)?
- oracle - 在存储过程中创建动态表而在 PL/SQL 块表中创建时权限不足
- python - 如何在 python 中绘制 3d 图形
- php - 如何用 laravel 显示图片
- python - Pandas:使用fuzzywuzzy匹配字符串并检索其他列的值