我目前正在使用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进行编译,则该函数不存在。我一直在查看所有菜单,找到这个设置的位置,我没有找到任何东西。
我的问题是,是否还有其他地方需要更改编译器设置?如果有,我在哪里可以找到它?或者,我还需要做其他事吗?喜欢在某处覆盖某些设置吗?
答案 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
中执行相同操作)