记录在visual studio 2015下编译wxWidgets的Hello World程序
记录在visual studio 2015下编译wxWidgets的Hello World程序
南城小镇 发表于10个月前
记录在visual studio 2015下编译wxWidgets的Hello World程序
  • 发表于 10个月前
  • 阅读 49
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

从官网上下载的源代码:https://www.wxwidgets.org/downloads/

假设源码解压到 $WXWIN 目录

更详细的wxWidgets安装步骤在 $WXWIN\doc\msw\install.txt 中有说明,这里只是简单介绍一下。

第一步是编译wxWidgets: 打开 $WXWIN\build\msw\wx_vc12.sln,点击 菜单-生成-生成解决方案(F7)

在编译的时候发现有一个项目生成失败,通过后面的测试发现是 wxtiff 编译失败

输出窗口也有提示了错误原因,解决方法:打开tif_config.h:367行把   #define snprintf _snprintf 注释

第二步,新建空白项目,添加cpp源文件。添加 包含目录:$WXWIN\include,添加库目录:$WXWIN\lib\vc_lib     (这个目录只有你编译之后才会出现)

cpp源文件(官网 Hello World 演示的一部分,这里只是检查是否可以编译)


#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <wx\wxprec.h>
#ifndef WX_PRECOMP
	#include <wx\wx.h>
#endif // !WX_PRECOMP
using namespace std;


class MyApp :public wxApp
{
public:
	virtual bool OnInit();
};

class MyFrame :public wxFrame
{
public:
	MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
private:
	void OnHello(wxCommandEvent& event);
	void OnExit(wxCommandEvent& event);
	void OnAbout(wxCommandEvent& event);
	wxDECLARE_EVENT_TABLE();
};

enum
{
	ID_Hello = 1
};

int main() {
	cout << "hello world" << endl;
	getchar();
	return 0;
}

 

通过 菜单-生成-生成解决方案(F7),我发现了以下两种错误情况:

  1. fatal error C1083: 无法打开包括文件: “../../../lib/vc_lib/mswd/wx/setup.h”: No such file or directory
  2. error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>  c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\string.h(119): note: 参见“strcpy”的声明

 

错误2的情况很容易解决,解决方法:源文件添加 #define _CRT_SECURE_NO_WARNINGS

错误1是因为没有没有预定义Unicode,解决方法:把项目的字符集改为 “使用Unicode字符集”

 

标签: c++
共有 人打赏支持
粉丝 2
博文 17
码字总数 11735
×
南城小镇
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: