将wxWidgets与MinGW,CMake和Code :: Blocks结合使用

时间:2018-06-20 06:06:07

标签: windows cmake codeblocks wxwidgets mingw-w64

我在CMake中配置了wxWidgets,并使用MinGW-x64构建了它。构建二进制文件后,我使用了mingw32-make install命令(在OpenCV中使用了该命令),并且该命令已自动安装,如下所示。

C:\Program Files (x86)\wxWidgets
├───include
│   └───wx
│       ├───android
│       ├───aui
│       ├───dfb
│       ├───generic
│       ├───gtk
│       ├───gtk1
│       ├───html
│       ├───meta
│       ├───motif
│       ├───msw
│       ├───osx
|       |...
└───lib
    └───gcc_dll
        └───mswu
            └───wx

但是在安装之后,我在Compiler处提供了参数LinkerCode::Blocks-> Settings-> Compiler -> Search Directories,但是在编译示例程序时却给出了错误,表明过程是非标准的。

我不知道下一步要正确关联库并包含带有Code :: Blocks的文件。我已经用谷歌搜索过,大多数网络结果都在程序中使用makefile.gcc。之后如何在CodeBlocks中使用wxWidgets?

2 个答案:

答案 0 :(得分:0)

请注意,CMake不是构建wxWidgets的官方方法。但是,您可以使用此工具构建自己的软件。 CMake的合并最近刚刚开始,将在3.2版中可用(经过全面测试)。 (希望如此)。

现在,我不知道您在C :: B中收到了什么错误消息,但是您必须为新项目选择与构建wxWidgets时完全相同的选项。即如果在wxWidgets编译期间提供SHARED = 0,则绝对必须在C :: B项目中选择SHARED = 0。依此类推。

没有确切的错误消息,您将获得最佳建议。

此外,您没有提到您的wxWidgets版本。将来,请这样做,尤其是因为您正在使用的IDE不能立即使用最新版本的wx。

HTH。

答案 1 :(得分:0)

因为每个项目(您已经创建了一个项目,对吗?C :: B要求它)可能需要不同的库和选项,所以我不希望不使用“全局” C :: B设置(“工具链可执行文件”除外)。

请转到Project-->Build options。检查“选定的编译器”是否是您想要的。

标签Compiler settings是指您的编译器(g ++),而不是wxWidgets要求。看看标志。可能需要其他选项,例如-mthreads

Linker settings选项卡适用于所有Windows .dll,例如kernel32,user32,winmm等。
如果您有不同的目标,例如“ debug”和“ release”,则wxWidgets库是不同的(“ debug”的库在每个名称的末尾都有一个d)。因此,您必须为不同的目标添加不同的wx库。选择一个目标(左侧的大框),然后再次在Linker settings选项卡中添加这些库(wxmsw31u_core,wxbase31u等,或者如果构建了这个库而不是几个文件,则仅添加“大单体”库)似乎只有选择一个“发布”目标。

要指示编译器和链接器在哪里可以找到这些wxWidgets文件(.dll或.a)及其标头,请使用Search directories选项卡。同样,不同的目标使用不同的目录。

编译器搜索.h,在您的情况下,添加路径C:\Program Files (x86)\wxWidgets\include以及C:\Program Files (x86)\wxWidgets\lib\gcc_dll\mswu

对于链接器(在Linker子选项卡中,添加C:\Program Files (x86)\wxWidgets\lib\gcc_dll

Resource compiler子选项卡,对于您的.res文件(可能使用一个),也使用了一些wxWidgets标头,因此添加相同的C:\Program Files (x86)\wxWidgets\include


不要忘记wxWidgets使用了一些定义。
转到标签Compiler settings子标签#defines并添加条目:__GNUWIN32____WXMSW__


有关更多选项,请阅读yourwxdir\docs\msw\install.txt