我在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
处提供了参数Linker
和Code::Blocks-> Settings-> Compiler -> Search Directories
,但是在编译示例程序时却给出了错误,表明过程是非标准的。
我不知道下一步要正确关联库并包含带有Code :: Blocks的文件。我已经用谷歌搜索过,大多数网络结果都在程序中使用makefile.gcc。之后如何在CodeBlocks中使用wxWidgets?
答案 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