gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 02:12:35 24 4
gpt4 key购买 nike

我目前在我的 C++ IDE 中使用 CodeLite。 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 函数的所有点上都失败了。 IT 说它无法识别。

然后我转到全局编译器设置(设置->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

有一个 rogue -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选项 确保你有 $(shell wx-config --libs)

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

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

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

关于c++ - CodeLite 不使用全局编译设置或项目编译设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com