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

CodeLite not using Global compile settings or project compile settings

本文关键字:编译 设置 项目 全局 Codelite      更新时间:2023-10-16

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

最近,我将WXWigets的代码从3.0移至3.1。我发现有许多功能是3.1独有的功能,这些功能对开发我的C 应用程序最有帮助。最值得注意的是,wxwindow :: fromDip函数。

我能够从在线获取WXWIDGETS来源,并成功地进行编译。我右键单击了项目文件夹,转到了C 编译器设置,并确保包括我编译的WX-3.1库的位置(is/usr/local/include/wx-3.1)。

作为测试,我在代码的某些部分中添加了fromDip()函数。代码完成能够拾取我键入的内容,并且能够"看到" fromDip()函数。

当我去构建项目时,构建在我拥有fromDip函数的所有点上都失败了。这是说这不是可识别的。

i然后转到全局编译器设置(设置 -> build设置 ->(选择我的编译器) ->高级),然后在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中更新PATH环境变量
  • 使用wx-config的完整路径,因此在Project Settings->Compiler->Compiler Options中使用此选项$(shell /usr/local/bin/wx-config --cxxflags)(在Project settings->Linker->Linker Options中执行相同的操作)