我正在查看KeepassXC 的源代码,我选择了 Clion 作为我的 IDE。在对源代码进行了一些挖掘和导航之后,我注意到其中一个源文件具有以下#include指令:
#include "ui_MainWindow.h"
带有红色下划线。用我的鼠标悬停在它上面,它说“'ui_MainWindow.h' not found”。
该项目的CMakeLists.txt文件提供了三种构建类型:
并且,一旦所有三种构建类型都成功构建,CLion 应该查找的文件位于以下位置:
cmake-build-(debug|release|relwithdebuginfo)
└── src
└── keepassx_core_autogen
└── include
├── moc_KMessageWidget.cpp
├── ui_AboutDialog.h
├── ui_CategoryListWidget.h
├── ui_ChangeMasterKeyWidget.h
├── ui_CloneDialog.h
├── ui_CsvImportWidget.h
├── ui_DatabaseOpenWidget.h
├── ui_DatabaseSettingsWidgetEncryption.h
├── ui_DatabaseSettingsWidgetGeneral.h
├── ui_DatabaseSettingsWidget.h
├── ui_DetailsWidget.h
├── ui_EditEntryWidgetAdvanced.h
├── ui_EditEntryWidgetAutoType.h
├── ui_EditEntryWidgetHistory.h
├── ui_EditEntryWidgetMain.h
├── ui_EditEntryWidgetSSHAgent.h
├── ui_EditGroupWidgetMain.h
├── ui_EditWidget.h
├── ui_EditWidgetIcons.h
├── ui_EditWidgetProperties.h
├── ui_EntryAttachmentsWidget.h
├── ui_MainWindow.h
├── ui_PasswordGeneratorWidget.h
├── ui_SearchWidget.h
├── ui_SettingsWidgetGeneral.h
├── ui_SettingsWidgetSecurity.h
├── ui_SetupTotpDialog.h
├── ui_TotpDialog.h
└── ui_WelcomeWidget.h
在尝试了几个小时后,我注意到了一些奇怪的事情。只有当我在调试模式下构建项目时,红色下划线才会消失(代码导航也会起作用)(即它只会从cmake-build-debug. 如果我清理调试版本并使用发布版本,我无法让 CLion 从cmake-build-release. 同样适用于cmake-build-relwithdebinfo。
代码编译并运行得很好,这意味着 CMake 配置是正确的。