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

时间:2017-02-27 14:04:58

标签: c++ gcc ide codelite

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

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

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

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

当我去构建项目时,构建在我拥有FromDIP功能的所有点都失败了。它说它无法识别。

然后我转到全局编译器设置(设置 - >构建设置 - >(选择我的编译器) - >高级),我在我的wx-3.1编译库的include路径中添加了。

同样,构建失败了。然后我回到项目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进行编译,则该函数不存在。我一直在查看所有菜单,找到这个设置的位置,我没有找到任何东西。

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

1 个答案:

答案 0 :(得分:2)

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

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

您不必(也不应该)手动添加编译器路径,只需: wx-config确保您拥有wx-config --cflags,并Project Settings->Compiler->Compiler options确保您拥有$(shell wx-config --cxxflags)

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

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

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