我是Windows开发人员,我需要使用Code :: Blocks 开发多平台C ++ GUI应用程序。
在我第一次尝试做一个简单的" Hello World"之后安装Code :: Blocks和wxWidgets。应用程序,IDE向我显示一个包含 $(#wx)
的框什么是 $(#wx)?
Google搜索教程我看到了image
什么是 -g ?
最后出现以下error message:
连续3天我一次又一次地尝试没有成功!
我甚至尝试 wxPack 。什么都行不通!
使用VC ++,C ++ Builder甚至wxDev-C ++,这是直截了当的
只有Code :: Blocks太难了!
谷歌搜索,我发现很多人都有同样的错误,但他们得到的建议并不适合我!有人可以一步一步告诉我必须做些什么吗?
谢谢。
答案 0 :(得分:2)
通常情况下,你的愚蠢来自于你的无知。如果您需要了解C :: B,那就是生命。不要浪费时间去生气,生命短暂。
CodeBlocks与编译器无关。您可以使用VC ++,MinGW,TDM-GCC,GCC等。因此,您必须告诉C :: B编译器使用。您可以为不同的"目标使用不同的编译器。 (见下文)。
C :: B也没有绑定任何库。如果你想使用wxWidgets,你必须告诉C :: B有关所需文件以及在哪里找到它们。
使用C :: B的人使用MinGW作为编译器是很常见的。这就是为什么当您第一次安装C :: B时,它会搜索MinGW,如果找到,则将其设置为默认编译器。您可以在Settings->Compiler
中设置自己的偏好设置。调试器也是如此,通常是GDB。
作为旁注,请注意MinGW仅为32位。有一个不同的编译器(MinGW 64)。 TDM-GCC同时提供两个编译器(及其GDB版本),我建议在不同的文件夹中安装32/64版本,并在C :: B中将它们设置为不同的编译器。对于Linux,"母亲"海湾合作委员会是事实上的标准。
在构建应用时,您必须定义target
。这只不过是一种方式来讲述像#34;我想要一个32位的库"或者"我想要一个64可执行文件"。在必需 项目中,您可以设置多个目标。在编译之前选择所需的一个(主工具栏中的组合框)。
开发时,建议将目标设置为" debug"。这意味着您要使用调试器。这需要使用"调试符号"。使用GCC(或其中一个" children",MinGW ...),您可以使用-g
作为标志添加到编译器中。
现在你明白了,你可能不仅设置了一个,而且设置了几个目标,例如"发布64 exe"," debug 32 exe"等等?
wxWidgets加入场景
尽管C :: B是用wxWidgets制作的,但它并没有随附。从wxWidgets site下载您喜欢的版本。虽然提供了一些二进制文件,但如果你使用其他一些编译器或其他一些参数,那么你需要自己编译wxWidgets。请参阅docs/msw/install.txt
并了解不同的配置(release,debug,static / dinamyc lib等)。你的目标"必须与wxWidgets配置匹配,因此最好构建多个版本,与目标相同。并且不要忘记为每个wxWidgets目标使用与您的应用目标相同的参数。您可以在Project->Build options
。
与任何编译器一样,您必须知道在哪里找到库和标头。以及您要使用的库。 Windows库(kernel32,user32等,它们很多,在另一个线程中询问)和wxWidgets库。
当您更新应用时,您可能使用较新的wxWidgets版本,但也希望支持其他wxWidgets版本的旧版本。你有几个文件夹。对于您的项目,您应该更新所有目录。这可以很快完成吗?是。在C :: B中,您可以定义variables
(例如$ wx31dir)并像$(wx31dir)/include
一样使用它们。重新定义var可以节省大量的输入。
您可以使用全局 var $(#wx31dir)
或多个项目拟合变量。你的决定。
最后,C :: B为wxWidgets应用程序提供了一个项目模板。它会问你一些位置(wx dirs)和vars。如果你不太清楚它的作用,最好不要使用它并自己设置一切。我知道,第一次很难。如果你注意所需的步骤,那么你可以得到它。
您是否阅读过CodeBlocks manual?
答案 1 :(得分:0)
由于您很难使用C :: B,我建议您切换到CodeLite,我觉得比C :: B(我的经验)更简单。您需要的一切都记录在CodeLite Wiki上。使用屏幕截图创建项目时,但在编译之前,打开环境变量(Settings->Environment Variables
)并添加行WXWIN=/path/to/your/wxwidgets/installation
并按照其中的说明进行编译。
答案 2 :(得分:0)
哎哟.... 您根本不需要与code :: blocks进行交互即可使用wxwidgets。 您可以简单地下载wx头和二进制包(取决于您的编译器),将其放在目录中并在源代码中导入(使用#include)它。 我看不出与C :: B有什么关系?你可以使用任何库而无需在编辑器(IDE)中编译和设置任何变量 - 但是你缺少很多的东西。
答案 3 :(得分:0)
我希望 Using wxWidgets Pre Built Binary in CodeBlocks at wxWidgets wiki 和 Using wxWidgets (MSW) 3.0 Binary with Code::Blocks Scripted Wizard 对于您的问题而言,将是最佳且有用的答案。
即使我想每天为方便起见也使用轮子,但是我也不想每天都一次又一次地发明轮子。 即使您的问题与MS Windows的wxWidgets和Code :: Blocks有关,答案链接也属于wxWidgets和Code :: Blocks本身, For recommended stability, I include the full screenshot of this document of wxWidgets own wiki 和 this of Code::Blocks own wiki