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
中执行相同操作)
我目前正在为我的 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
从 - 使用
wx-config
的完整路径,因此在Project Settings->Compiler->Compiler Options
中使用此选项$(shell /usr/local/bin/wx-config --cxxflags)
(在Project settings->Linker->Linker Options
中执行相同操作)
Settings->Environment variables
更新 CodeLite 中的 PATH
环境变量