青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Code Knight

Programming is so cool
隨筆 - 52, 文章 - 0, 評論 - 14, 引用 - 0
數(shù)據(jù)加載中……

VS05編譯wxWidgets

找了好多文章照著做弄了一下午才弄好,自己歸總一下,wxWidgets版本2.8.9。

導(dǎo)讀:
  1. 去http://www.wxwidgets.org/downloads/下載一個wxMSW版本的wxWidgets。
  2. 運行安裝文件。在安裝好后設(shè)置環(huán)境變量WXWIN,指向wxWidgets的安裝目錄。因為安裝過程僅僅是把文件拷貝到指定的目錄,所以還需要對wxWidgets進(jìn)行編譯。
  3. 進(jìn)入$(WXWIN)\build\msw目錄,用VS2005打開wx.dsw,提示是否進(jìn)行項目轉(zhuǎn)換,點確定。如果想要連接靜態(tài)運行庫,在編譯前應(yīng)該對每個項目進(jìn)行設(shè)置。
  
   
         編譯Debug版本的庫:用Visual Studio 2005打開build\msw\wx.dsw文件,Solution Configurations中選中Unicode Debug,直接Build Solution就可以編譯出Debug版本的wxWidgets庫了。(默認(rèn)的是Multi-Threaded debug dll)
    編譯Relase版本的庫:Release 版本的wxWidgets庫雖然也可以通過類似的方法去編譯,但編譯出來的庫仍然依賴于visual studio 2005的運行時庫。Debug版本的庫依賴VS2005也就算了,反正是自己調(diào)試用的。Release版本可是要給別人用的,再帶上一大堆dll就不好了。為了解決這個問題,我們需要先在Solution Configuration中選中Unicode Release,然后在Solution Explorer中,針對每一個project在項目屬性的C/C++ --> Code Generation --> Runtime Library中選Multi-Threaded。(HOHO, 有20個項目要改屬性啊~~~)。最后再Build Solution就可以了。(也就是LIB庫)

  
  編譯好后的wxWidgets會在$(WXWIN)\lib\vc_lib目錄下生成一系列的lib文件,這些lib文件的名字遵循下面的命名規(guī)則:不依賴于GUI組件的庫會以"wxbase"開頭,緊跟著的是版本號,然后的字母表明這個庫是否是編譯為Unicode('u')或是否是編譯為Debug('d'),名字中的最后部分是wxWidgets組件的名字。
  注意:wxWidgets編譯完后在$(WXWIN)\build\msw目錄下會生成許多預(yù)編譯頭文件,占了很大的空間,如果確定以后不再編譯wxWidgets庫的話,可以考慮刪掉。
  設(shè)置VC開發(fā)環(huán)境
  打開Tools -> Options -> Projects and Solutions -> VC++ Directories
  1. 在Include files中加入$(WXWIN)\include和$(WXWIN)\include\msvc
  2. 在Library files中加入$(WXWIN)\lib\vc_lib
  創(chuàng)建wxWidgets項目
  新建一個General -> Empty Project或Win32 -> Win32 Project項目,然后設(shè)置項目的一些屬性,可以選擇下面的其中一個來設(shè)置。譬如你如果打算使用Unicode,那么選擇Unicode Debug或Unicode Release,如果你僅僅想調(diào)試程序而非發(fā)布,則只需要選擇Debug設(shè)置。
  Debug:
  Project Properties -> General -> Character Set: No Set
  Project Properties -> C/C++ -> Code Generation -> Runtime Library: Multi-threaded Debug DLL (/MDd)
  Project Properties -> Linker -> Input -> Additional Dependencies: wxbase28d.lib wxmsw28d_core.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib

  Release:
  Project Properties -> General -> Character Set: No Set
  Project Properties -> C/C++ -> Code Generation -> Runtime Library: Multi-threaded (/MT)
  Project Properties -> Linker -> Input -> Additional Dependencies: wxbase28.lib wxmsw28_core.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib

  Unicode Debug:
  Project Properties -> General -> Character Set: Use Unicode Character Set
  Project Properties -> C/C++ -> Code Generation -> Runtime Library: Multi-threaded Debug DLL (/MDd)
  Project Properties -> Linker -> Input -> Additional Dependencies: wxbase28ud.lib wxmsw28ud_core.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib

  Unicode Release:
  Project Properties -> General -> Character Set: Use Unicode Character Set
  Project Properties -> C/C++ -> Code Generation -> Runtime Library: Multi-threaded (/MT)
  Project Properties -> Linker -> Input -> Additional Dependencies: wxbase28u.lib wxmsw28u_core.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib

  問題
  1. 在編譯時出現(xiàn)了Cannot open include file: '../mswu/wx/setup.h': No such file or directory錯誤
  這是因為項目屬性的Character Set設(shè)置不正確,必須與使用的wxWidgets庫的Character Set一致。
  2. 在編譯時出現(xiàn)了MSVCRT.lib(MSVCRT.dll) : error LNK2005: _free already defined in LIBC.lib(free.obj)
  這是因為沒有連接正確的wxWidgets庫,譬如Unicode Debug版本的項目就需要連接Unicode+Debug版本的wxWidgets庫(庫名后綴為'ud'的lib文件)?;蛘呤莣xWidgets和Application使用的Runtime Library不相同。
  3. 運行是出現(xiàn)No Debugging Information對話框
  將Project Properties -> Linker -> Debugging -> Generate Debug Info的值改成Yes (/DEBUG)。
#ifndef WXWIDGETS_EXAMPLE_HELLOWORLDAPP_H_20080722
#define WXWIDGETS_EXAMPLE_HELLOWORLDAPP_H_20080722

//對于支持預(yù)編譯的編譯器,包含此文件
// For compilers that support precompilation, includes "wx.h".
#include <wx/wxprec.h>

//對于不支持預(yù)編譯的編譯器,進(jìn)行如下操作
#ifndef WX_PRECOMP
// Include your minimal set of headers here, or wx.h
#include <wx/wx.h>
#endif

//定義wxApp類
class HelloWorldApp : public wxApp
{
public :
    
//在程序初始化時調(diào)用
    virtual bool OnInit();
    
//在程序結(jié)束時調(diào)用
    virtual int OnExit();
};

//定義wxGetApp()函數(shù),可以取得HelloWorldApp類型的全局程序變量
DECLARE_APP(HelloWorldApp)

#endif //WXWIDGETS_EXAMPLE_HELLOWORLDAPP_H_20080722


#ifndef WXWIDGETS_EXAMPLE_HELLOWORLDAPP_H_20080722
#define WXWIDGETS_EXAMPLE_HELLOWORLDAPP_H_20080722

//對于支持預(yù)編譯的編譯器,包含此文件
// For compilers that support precompilation, includes "wx.h".
#include <wx/wxprec.h>

//對于不支持預(yù)編譯的編譯器,進(jìn)行如下操作
#ifndef WX_PRECOMP
// Include your minimal set of headers here, or wx.h
#include <wx/wx.h>
#endif

//定義wxApp類
class HelloWorldApp : public wxApp
{
public :
    
//在程序初始化時調(diào)用
    virtual bool OnInit();
    
//在程序結(jié)束時調(diào)用
    virtual int OnExit();
};

//定義wxGetApp()函數(shù),可以取得HelloWorldApp類型的全局程序變量
DECLARE_APP(HelloWorldApp)

#endif //WXWIDGETS_EXAMPLE_HELLOWORLDAPP_H_20080722


posted on 2009-02-16 22:59 Code Knight 閱讀(3004) 評論(0)  編輯 收藏 引用 所屬分類: GUI編譯記

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美伦理一区二区| 国产精品伦理| 亚洲激情欧美激情| 亚洲主播在线| 亚洲欧美日韩电影| 欧美在线啊v| 久久在精品线影院精品国产| 欧美在线观看一区二区| 久久综合伊人77777| 久久九九全国免费精品观看| 久久久中精品2020中文| 免费观看日韩av| 亚洲人在线视频| 亚洲影院色无极综合| 欧美一区二区三区视频在线| 久久九九国产| 欧美日韩在线大尺度| 国产日韩欧美高清| 亚洲国产高清高潮精品美女| 在线视频欧美一区| 久久精品国产清自在天天线 | 亚洲高清电影| 一区二区三区四区五区精品视频| 午夜在线成人av| 亚洲福利电影| 亚洲自拍高清| 欧美成人嫩草网站| 亚洲午夜小视频| 久久国产视频网站| 欧美日韩美女在线| 永久域名在线精品| 亚洲免费中文| 亚洲日韩欧美视频一区| 欧美一级网站| 国产精品国产亚洲精品看不卡15| 在线欧美日韩| 久久久久久久激情视频| 日韩视频一区二区三区| 久久一区视频| 国产免费观看久久| 99国产精品久久久久久久| 久久久久久久久岛国免费| aa亚洲婷婷| 欧美国产亚洲另类动漫| 国产小视频国产精品| 亚洲亚洲精品在线观看| 欧美成人一区二区| 久久精品动漫| 国产一区二区高清不卡| 亚洲嫩草精品久久| 亚洲精品五月天| 欧美激情综合五月色丁香| 在线成人性视频| 久久综合一区| 久久青青草原一区二区| 国产日产亚洲精品| 久久国产精品高清| 午夜精品久久久久久久久久久久久 | 另类国产ts人妖高潮视频| 亚洲图片自拍偷拍| 欧美日本国产在线| 日韩视频在线免费观看| 亚洲国产经典视频| 欧美精品18+| 一本久道久久综合中文字幕| 最新国产成人在线观看| 欧美成人自拍视频| 亚洲伦理网站| 一区二区三区欧美成人| 国产精品第13页| 欧美一区二区三区四区高清 | 欧美日韩免费观看一区=区三区| 亚洲激情一区| 亚洲精品乱码久久久久久久久| 欧美激情一区二区三区蜜桃视频| 亚洲日本va在线观看| 日韩视频免费观看| 国产精品美女视频网站| 久久久久久黄| 欧美成人资源| 性伦欧美刺激片在线观看| 老巨人导航500精品| 国产精品99久久久久久久久久久久| 久久免费视频在线观看| 在线一区二区三区四区| 久久久亚洲精品一区二区三区| 亚洲精品国精品久久99热| 亚洲三级免费观看| 黑人巨大精品欧美黑白配亚洲| 亚洲人成绝费网站色www| 欧美国产日韩一区| 亚洲视频在线免费观看| 亚洲精品美女在线观看| 欧美日本一区| 午夜精品一区二区三区在线视| 亚洲一区在线观看视频 | 亚洲激情不卡| 日韩写真在线| 狠狠色综合网| 99riav国产精品| 黑人操亚洲美女惩罚| 99热免费精品| 亚洲高清电影| 亚洲欧美日韩在线不卡| 日韩视频欧美视频| 欧美一二三视频| 日韩视频国产视频| 欧美一区二粉嫩精品国产一线天| 亚洲国产精品一区二区第四页av| 亚洲美女在线国产| **欧美日韩vr在线| 亚洲视频视频在线| 最新亚洲电影| 欧美一区中文字幕| 亚洲自拍偷拍视频| 欧美成人精品三级在线观看| 久久久久久夜精品精品免费| 欧美国产91| 欧美私人啪啪vps| 久久久亚洲国产天美传媒修理工 | 国产女人18毛片水18精品| 亚洲激情第一区| 一区一区视频| 欧美一区在线直播| 性欧美8khd高清极品| 欧美视频1区| 91久久久久久久久| 亚洲第一页在线| 久久免费午夜影院| 另类图片国产| 韩国成人理伦片免费播放| 亚洲欧美日韩专区| 小黄鸭精品aⅴ导航网站入口| 欧美日韩国产综合一区二区| 亚洲第一在线综合网站| 亚洲福利视频二区| 久久久久久久国产| 久久综合伊人77777蜜臀| 国产亚洲亚洲| 久久精品中文字幕免费mv| 久久精品视频在线播放| 国产视频久久网| 欧美在线免费| 免费在线亚洲欧美| 亚洲黄色大片| 免费精品99久久国产综合精品| 欧美69视频| 亚洲免费观看高清完整版在线观看熊 | 亚洲美女区一区| 欧美日韩久久久久久| 99国产精品久久久| 亚洲欧美国产视频| 国产精品免费观看在线| 亚洲欧美日韩国产一区二区三区| 亚洲欧美日韩精品一区二区| 国产女人精品视频| 久久国产黑丝| 亚洲福利视频一区| 亚洲午夜久久久久久久久电影院| 欧美三级日本三级少妇99| 中文国产一区| 久久久久久久久综合| 在线精品亚洲| 欧美久久视频| 亚洲视频一区在线| 久久久国产成人精品| 亚洲国产三级| 国产精品精品视频| 久久riav二区三区| 亚洲人成网在线播放| 亚洲欧美第一页| 激情六月综合| 欧美偷拍一区二区| 久久成人精品一区二区三区| 欧美14一18处毛片| 午夜精品国产更新| 一色屋精品亚洲香蕉网站| 欧美另类变人与禽xxxxx| 亚洲精品国产精品久久清纯直播| 欧美精品免费视频| 午夜激情久久久| 91久久久久久久久| 久久久久欧美精品| 亚洲欧洲一区二区在线观看| 欧美视频不卡| 欧美国产成人精品| 午夜精品www| 亚洲日本一区二区| 蜜臀a∨国产成人精品| 亚洲综合大片69999| 亚洲第一福利社区| 国产欧美日韩精品在线| 欧美激情一区二区三区全黄| 久久成人在线| 夜夜嗨av色一区二区不卡| 欧美风情在线观看| 久久久久网站| 久久精品盗摄| 欧美在线视频导航| 性做久久久久久|