wxWidgets 笔记1--VC下的编译

本文记录了作者使用wxWidgets-2.6.3版本在Windows环境下进行跨平台编译的经历,包括使用Code::Blocks及Visual C++遇到的问题与解决方法。文中详细描述了在不同编译器下构建wxWidgets库时出现的连接错误及其解决方案。

wxWidgets 笔记

环境:
wxWidgets-2.6.3,Win2K Svr

wxWidget是在跨平台的C++ UI库中比较成功的一个,而且是开放源代码的,真正接触是因为下载了一个跨平台C++ IDE环境Code::Blocks,他提供了wxWidget项目向导,所以就下载了一个wxWidget2.6.3,用gcc编译后,Code::Blocks怎么也连接不成功,用VC把wxWidget编译成lib也不能连接,后来偶然发现Sample目录下有个mfctest,用VC编译的lib能成功连接。
另外发现用VC编译wxWidget好像要比gcc快很多,不过可能也不是。因为gcc用通过
make makefile.gcc 编译个,编译结果的库的数目多一些
vc是直接打开的mfctest项目编译个,对于wxWidget只编译了两个相光的lib,所以可能是错觉,下次有机会在两个都全部重新编译一次再比较好了。

还有就是用VC连接mfctest项目的过程中出现了错误,
Linking...
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: "void * __cdecl operator new(unsigned int,int,char const *,int)" (??2@YAPAXIHPBDH@Z) already defined in Nafxcwd.lib(afxmem.obj)
Nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
Nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
Nafxcwd.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
Nafxcwd.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype
Nafxcwd.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
vc_mswd/mfctest.exe : fatal error LNK1120: 3 unresolved externals

设置 Use MFC in a Shared DLL 后没有问题

今天就到这 ,那天继续看看 wxWidget在其他编译环境下的编译
因为wxWidget主要特征是跨平台,如果还是只会在windows下面使用,那业没什么意思,那样用WTL这个轻量级一点的可能还简单点 

### 编译 wxWidgets 3.2.6 的方法 为了在 Linux 上成功编译 wxWidgets 3.2.6,需要遵循一系列特定的操作流程来确保所有依赖项都已满足并正确配置。 #### 准备工作 确保系统已经安装了必要的开发工具和库。可以通过包管理器安装这些依赖项: 对于基于 Debian/Ubuntu 的发行版: ```bash sudo apt-get update && sudo apt-get install build-essential libgtk-3-dev ``` 对于基于 Red Hat/CentOS/Fedora 的发行版: ```bash sudo yum groupinstall "Development Tools" sudo yum install gtk3-devel ``` #### 下载源码 从官方网站下载 wxWidgets 3.2.6 版本的压缩包,并解压到本地目录中[^1]。 #### 配置构建选项 进入解压后的 wxWidgets 文件夹内执行如下命令来进行预处理阶段的工作: ```bash mkdir -p ~/wxBuild/wxWidgets-3.2.6/lib/gtk3/static cd wxWidgets-3.2.6/ ./configure --prefix=$HOME/wxBUILD/wxwidgets-3.2.6 \ --with-gtk=3 \ --disable-shared \ --enable-monolithic \ --without-libtiff \ --without-libjpeg \ --without-libpng \ --without-libxpm \ --without-expat \ --with-zlib=builtin ``` 上述命令指定了多个参数用于定制化编译过程中的行为模式以及最终产物的形式特征。例如 `--disable-shared` 表明只生成静态链接库;而像 `--without-*` 这样的开关则表示不使用某些第三方图形支持功能以减少不必要的复杂度。 #### 执行编译操作 完成以上准备工作之后就可以正式开始编译了: ```bash make -j$(nproc) ``` 这里 `-j$(nproc)` 参数会自动调整并发作业的数量从而加快整个编译的速度。 #### 安装至指定路径下 最后一步就是把新创建出来的文件复制到之前通过 configure 命令所定义的目标位置上去: ```bash make install ``` 这样就完成了 wxWidgets 3.2.6 在 Linux 平台上的手动编译与部署工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值