CodeLite 不使用全局编译设置或项目编译设置

CodeLite not using Global compile settings or project compile settings

我目前正在为我的 IDE C++ 使用 CodeLite。 IDE 中有许多我喜欢使用的功能,而且界面非常简单。

最近,我将我的 wxWigets 代码从 3.0 移动到 3.1。有许多 3.1 独有的功能,我发现它们对开发我的 C++ 应用程序最有帮助。最值得注意的是 wxWindow::FromDIP 函数。

我能够从网上抓取wxWidgets源码并编译成功。我右键单击项目文件夹,转到 C++ 编译器设置并确保包括我编译的 wx-3.1 库的位置(即 /usr/local/include/wx-3.1)。

作为测试,我在代码的某些部分添加了 FromDIP() 函数。代码完成能够获取我输入的内容,并且能够 "see" FromDIP() 函数。

当我去构建项目时,构建在我有 FromDIP 函数的所有点上都失败了。 IT说的是无法识别。

然后我转到全局编译器设置(设置->构建设置->(选择我的编译器)->高级)并将包含路径添加到我的 wx-3.1 编译库。

再次构建失败。然后我回到项目 C++ 编译器设置并设置全局设置以覆盖项目设置。

再次构建失败。

我查看了 GCC 输出的内容:

/usr/bin/g++-4.9  -c  "/home/phillip/GitHub/Omni-FEM/src/UI/BoundaryDialog/BoundaryDialog.cpp" -g -O0 -fopenmp -std=c++11 -Wall -lglut -lGL -lGLU -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread  -o ./Debug/src_UI_BoundaryDialog_BoundaryDialog.cpp.o -I/home/phillip/GitHub/Omni-FEM/Include -I/usr/local/include/wx-3.1  -I/usr/include/wx-3.0-unofficial -I/usr/include/GL -I/usr/local/include/wx-3.1

有一个流氓 -I/usr/inlcude/wx-3.0 编译器设置。我相信这个编译器设置覆盖了我想要 wx-3.1 的那个(你会看到那个选项稍后出现)。当然,构建将失败,因为如果 CodeLite 尝试使用 3.0 进行编译,则该函数不存在。我一直在查看所有菜单以查找此设置的位置,但我没有找到任何东西。

我的问题是,是否还有其他地方需要更改编译器设置?如果需要,我在哪里可以找到它?或者,我需要做其他事情吗?想覆盖某处的一些设置?

默认情况下,CodeLite 使用 wx-config 工具来获取编译器所需的正确路径和定义。

您需要做的就是确保使用正确的 wx-config 工具。 为此,只需从终端输入 wx-config --cflags 并查看哪些标志被打印到终端。

您不会(也不应该)手动添加编译器路径,只需在: Project Settings->Compiler->Compiler options 确保你有 $(shell wx-config --cxxflags) 并且在 Project settings->Linker->Linker options 中确保你有 $(shell wx-config --libs)

关于全局路径:你不应该添加这些,除非你真的知道你在做什么。这些路径用于所有工作区,甚至是那些与 wxWidgets 无关的工作区。所有项目设置都应在工作区级别设置(这样,如果您与其他人共享您的项目,他们也可以从您的设置中受益)

如果您安装了多个 wxWidgets,您需要确保使用了正确的 wx-config。为此,您可以执行以下操作之一:

  • 假设您希望使用 /usr/loca/bin/wx-config,请通过添加此行 PATH=/usr/local/bin:$PATH
  • Settings->Environment variables 更新 CodeLite 中的 PATH 环境变量
  • 使用 wx-config 的完整路径,因此在 Project Settings->Compiler->Compiler Options 中使用此选项 $(shell /usr/local/bin/wx-config --cxxflags)(在 Project settings->Linker->Linker Options 中执行相同操作)