• <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>

            2013年1月29日

            matlab 最臨近插值

            function Io = imageNearest(Ii,dw,dh)
            %%% function: image enlarge or zoom out with nearest interpolation
            %%% Para: Ii - input gray image
            %%% dw - scaling for width
            %%% dh - scaling for height

            [h, w] = size(Ii);
            wo = w*dw;
            ho = h*dh;
            I_indexW = 1:wo;
            I_indexW = I_indexW/dw;
            I_indexW = floor(I_indexW+0.5);

            I_indexH = 1:ho;
            I_indexH = I_indexH';
            I_indexH = I_indexH/dh;
            I_indexH = floor(I_indexH+0.5);

            Io = Ii(I_indexH,I_indexW);

            posted @ 2013-01-29 11:30 鐘謝偉 閱讀(552) | 評論 (0)編輯 收藏

            2012年10月18日

            SDL 入門

            http://blog.csdn.net/lf426/article/category/364048/2

            posted @ 2012-10-18 22:28 鐘謝偉 閱讀(315) | 評論 (0)編輯 收藏

            2012年10月15日

            采用TL-WR703N搭建校園網接入點

            1. 將自己的電腦的本地連接屬性中的ip地址設置為192.168.1.2,掩碼設置為255.255.255.0,網關設置為192.168.1.1
            2. 將wr703n用網線鏈接到電腦上
            3. 瀏覽器中進入192.168.1.1,然后使用固件openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin升級路由器
            4. 下載安裝兩個軟件,WinSCP(用于路由器與本地電腦之間的文件傳輸)、SecureCRT(SSH登入器)
            5. 固件升級完之后重啟路由器,使用WinSCP連接進入路由器
            6. 修改文件
             文件:/etc/config/wireless
            修改為:
            config wifi-device 'radio0'
                     option type 'mac80211'
                     option channel '3'
                     option macaddr '14:e6:e4:e7:c6:a2'
                     option hwmode '11ng'
                     option htmode 'HT20'
                     list ht_capab 'SHORT-GI-20'
                     list ht_capab 'SHORT-GI-40'
                     list ht_capab 'RX-STBC1'
                     list ht_capab 'DSSS_CCK-40'
                     option disabled '0'
                     option txpower '27'
                     option country 'US'

            config wifi-iface
                     option device 'radio0'
                     option network 'lan'
                     option mode 'ap'
                     option ssid '這里填無線網的名稱英文'
                     option encryption 'psk2'
                     option key '這里寫密碼八位'

            文件:/etc/config/network
            如果采用靜態網址就修改為:
            config interface 'loopback'
                     option ifname 'lo'
                     option proto 'static'
                     option ipaddr '127.0.0.1'
                     option netmask '255.0.0.0'

            config interface 'wan'
                     option ifname 'eth0'
                     option _orig_ifname 'eth0'
                     option _orig_bridge 'false'
                     option proto 'static'
                     option ipaddr '這里寫你的靜態IP'
                     option netmask '寫子網掩碼'
                     option gateway '寫網關'
                     option dns '寫DNS'

            config interface 'lan'
                     option type 'bridge'
                     option proto 'static'
                     option ipaddr '192.168.1.1'
                     option netmask '255.255.255.0'

            文件:/etc/config/network
            如果是自動獲取IP方式就修改為:
            config interface 'loopback'
                     option ifname 'lo'
                     option proto 'static'
                     option ipaddr '127.0.0.1'
                     option netmask '255.0.0.0'

            config interface 'wan'
                     option ifname 'eth0'
                     option _orig_ifname 'eth0'
                     option _orig_bridge 'false'
                     option proto 'dhcp'

            config interface 'lan'
                     option type 'bridge'
                     option proto 'static'
                     option ipaddr '192.168.1.1'
                     option netmask '255.255.255.0' 
            7. 將鏈接http://code.google.com/p/mentohust/issues/detail?id=175中的40K的mentohust下載復制到/usr/bin中,并通過chmod 755 mentohust命令對mentohust的文件屬性進行更改
            8. 可以在/root/下建立runHust.sh的shell文件
            文件:runHust.sh
            內容:
            #! /bin/ash
            mentohust -u***** -p**** -i***** -m***** -g*** -d0 -b0 -a1
            9. 將路由器連接到校園網的網線接口上運行SecureCRT,執行ash runHust.sh就能夠進行聯網
            10. 連網期間不能夠中斷SecureCRT軟件
            (有其它方式,請補充)

            posted @ 2012-10-15 20:38 鐘謝偉 閱讀(1814) | 評論 (3)編輯 收藏

            2012年8月1日

            [轉]折疊::Vim進階索引[2]

            http://blah.blogsome.com/2006/04/13/vim_tut_folding/#g_t_00ca_00b5_00c0_00fd_00d1_00dd_00ca_00be
            講解的清楚明了,值得一看

            posted @ 2012-08-01 11:10 鐘謝偉 閱讀(938) | 評論 (0)編輯 收藏

            2012年7月31日

            vim 非貪婪匹配

            嘗試自己實現高亮,采用match的方式
            paper.vim
            syn match m1 "\!.*?\!"
            hi m1 guifg=red
            首先嘗試了這樣的方式,上述的正則表達式在
            http://regexpal.com/
            中能能夠很好的實現
            但是在vim中卻失策了。
            找了半天終于找到了解決的辦法,改為如下的方式:
            syn match m1 "\!.\{-}\!"
            它在
            http://regexpal.com/
            無法識別。
            可見vim的正則表達式還是有所不同的,誒。

            posted @ 2012-07-31 15:59 鐘謝偉 閱讀(1055) | 評論 (0)編輯 收藏

            2012年7月28日

            [轉]CodeBlocks中文版使用手冊

            譯者:JGood(http://blog.csdn.net/Jgood )

                譯者言:工欲善其事,必先利其器。一個好的工具能事半功倍。寫程序時,特別是寫C++程序,大部分人腦子里想到的第一個工具就是 VisualStudio。不可否認,VS很好很強大,用戶體驗非常好。但VisualStudio也是有缺點的:它非常龐大;只支持VC,不支持其他的 編譯器;VS只能在windows下跑,在其他os上就無用武之地;VS是要錢的,而且費用不非(Express版本免費)。Code::Blocks是 一個非常優秀的工具,如果您正在尋找VisualStudio之外的,開源、免費、輕便、支持多種編譯器、跨平臺的C/C++ IDE,那么Code::Blocks就是一個很好的選擇。

                說明:筆者打算用兩篇日志來完成對Code::Blocks手冊前二章的編譯,分別是:使用篇、插件篇。本文是第一篇:Code::Blocks使用篇 。原手冊第三章介紹Code::Blocks變量、腳本的使用,第四章介紹如何從源碼編譯Code::Blocks,這兩章內容不是很多,筆者認為對大部分用戶幫助不是不大,暫不打算翻譯。筆者使用的Code::Block版本是nightly builds,svn6088(可以在這個地址下載:http://forums.codeblocks.org/index.php/topic,11875.0.html )。使用的編譯器是GCC3.4.5。每個版本之間的使用可能會有細微的差別。因為水平有限,難免出錯,歡迎指正!

            Code::Blocks:免費、開源、跨平臺、功能強大的C/C++ IDE。

            Code::Blocks 手冊 Version 1.0

            感謝CodeBlocks項目組:

            Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), PaulA. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-macy), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag)

            Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.

            1 CodeBlocks項目管理

                下圖是CodeBlocks運行時的用戶界面:

            CodeBlocks運行界面

            •     管理(Management):管理窗口包含Project視圖與Symbols視圖。Project視圖顯示當前CodeBlocks打開的所有項目 (譯者注:類似與VS解決方案資源管理器);Symbols視圖顯示項目中的標識符:類,函數、變量等信息(譯者注:類似與VS的類視圖)。
            •     代碼編輯器:支持代碼折疊,關鍵字高亮顯示。上圖main.cpp正在被編輯。
            •     打開文件列表:顯示當前在代碼編輯器中打開的所有文件列表。上圖中打開的文件列表為:main.cpp, person.cpp, person.hpp
            •     代碼段(CodeSnippets):管理常用的代碼段、常用文件鏈接(links to files)與URL。可以通過菜單 View->CodeSnippets 來顯示該面板。
            •     日志和其他:這個窗口用于輸出日志信息,顯示查詢結果等等。
            •     狀態欄提供了以下這些信息:
            •         編輯器中打開文件的絕對路徑;
            •         文件的編碼類型;
            •         光標所在的行與列;
            •         當前的鍵盤模式(insert 或者 overwrite);
            •         當前的文件狀態。被修改過的(但尚未保存)文件將被標記為“modified”,否則這里為空;
            •         文件操作的權限。如果文件是只讀的,這里將會顯示“Read only”,在 Open files list中,該文件會使用一個加瑣的圖標來顯示;
            •         個性化配置名稱;

                CodeBlocks提示了非常靈活和強大的項目管理功能。下文將介紹項目管理的一些常用功能。

            1.1 項目視圖(Project View)

            管理窗口

                在CodeBlocks中,Project的源文件(如C/C++的源文件及其對應的頭文件)和編譯屬性設置信息都保存 在<name>.cbp文件里。可以通過菜單[File–>Project]啟動工程創建向導來創建新的Project,然后通過管理 窗口的上下文菜單[Add files](譯者注:上下文菜單,指當前窗口中選中目標項目,然后右鍵顯示的菜單)向Project中添加文件。CodeBlocks會自動根據文件的 后綴將它們放入不同的類別文件夾中(譯者注:這個文件夾是虛擬的,實際并不存在)。下面是默認的分類:

            •     Sources:包含源文件,后綴為*.c、*.cpp;
            •     ASM Sources:包括匯編源文件,后綴一般為*.s、*.S、*.ss、*.asm;
            •     Headers:包括頭文件,后綴一般為*.h、 *.hpp;
            •     Resources:包括資源文件,后綴一般為*.res、*.xrc;

                通過管理窗口的上下文菜單[Project tree –>Edit file types & categories],用戶可以新建自定義的文件類別,并為其相應的后綴。例如,如果你希望*.ld的文件放到Linkerscript的分類里,你只需新建類別Linkerscript,并為它指定*.ld后綴即可。

                提示: 如果你取消選中管理窗口上下文菜單的[Project tree–>Categorize by file types]選項,所有的項目文件將會按它們在文件系統中的位置來顯示。

            1.2 項目備注(Notes for Projects)

                可以給CodeBlocks項目添加一些備注,用于對項目進行概要的描述與說明,這些信息有助于其他成員迅速的了解項目。備注信息被保存在項目工程文件里,并可以設置為隨著項目的啟動而顯示。如圖:

            設置項目備注信息

            1.3 項目模板

            項目模板

                CodeBlocks支持許多不同類型的項目模板,它們會在新建項目的時候顯示,創建新項目的時候往往從這些模板中選擇(如上圖:)。用戶可以自定義工程 模板。工程模板保存編譯器的類型、編譯選項、資源的配置等相關信息。項目模板保存在Documents andSettingsn\<user>\Application Data\codeblocks\UserTemplates目錄中。如果你希望該工程模板被本機的所有用戶使用,必須把對應的模板文件拷貝到 CodeBlocks的安裝目錄。模板在CodeBlocks重啟之后生效,通過菜單[New->Project->User templates]就可以看到自定義的模板。

                提示: 用戶可以通過右鍵選中工程向導中的模板對其進行編輯。如下圖:

            編輯模板

            1.4 從編譯模式創建項目(Create Projects from Build Targets)

                一個項目往往有不同的編譯模式,最常見的是Release和Debug。不同的編譯模式表示用于構建當前項目所使用的不同編譯器選項、調試信息或者依賴的 文件。每一種編譯模式都可以被保存成獨立的工程文件。通過上下文菜單[Project->Properties],在Build Targets標簽中點擊“Create project from target”按鈕來生成對應編譯模式的工程文件,如圖:

            編譯模式

            1.5 編譯模式(Virtual Targets)

                一個項目可以有多種不同的編譯模式,最常用的編譯模式為“Debug”和“Release”。“Debug”模式下會包含許多Debug信息,而 “Release”模式下沒有這些信息。也可以通過上下文菜單[Project->Properties->Build Targets]添加其他的編譯模式。編譯模式將顯示在工具欄中:

            編譯模式  

            1.6 預生成和生成后步驟 (Pre- and Postbuild setps)

                Code::blocks允許在項目生成前和生成后執行額外的操作,這些操作分別被稱為預生成(Prebuilt)或生成后(Postbuilt)步驟。下面是典型的生成后步驟:(譯者注:筆者對低層的東西知道的不多,不是很清楚下面這些步驟的意思。)

                    Creating an Intel Hexformat from a nished object
                    Manipulating objects by objcopy
                    Generating dump les by objdump

            1.7 為構建目標添加腳本(Adding Scripts in Build Targets)

                Code::Blocks允許使用腳本來調用菜單命令,控制項目的生成。

                提示: 腳本可以被包含到一個構建目標(Build Target)中。

            1.8 解決方案(Workspace)與項目依賴

                CodeBlocks可以同時打開多個項目,通過菜單[File->Save workspace]把它們集成到一個解決方案中,并生成一個對應的解決方案文件(<name>.workspace)。下次打開解析方案文件(<name>.workspace)時,這些項目會被一起加載進來。

                復雜的軟件系統通常由不同的模塊、組件以獨立的工程項目組成,它們之間往往存在依賴關系。

                例如:項目A以庫(library)的形式提供一些公用函數給其他項目調用,如果項目A中的源代碼被修改,這個庫就得重新編譯。項目B使用項目A中實現的 函數,那么項目B就依賴項目A。CodeBlocks把這些項目依賴的信息保存到解決方案文件中,所以解決方案中的工程可以各自獨立的創建、編譯而不相互 影響(譯者注:由解決方案文件來維護各項目的依賴關系)。這些依賴關系會決定項目的生成順序。通過菜單 [Project->Properties],然后選擇[Project’s dependencies]按鈕來設置項目之間的依賴關系。如下圖:

            項目依賴

            1.9 包含匯編文件

                略。

            1.10 代碼編輯器與工具 (Editor and Tools)

            1.10.1 默認代碼 (Default Code)   

                公司的編碼規范往往要求源文件有統一的布局(譯者注:例如源文件的開始處以統一的格式給出文件創建的時間、作者、實現的功能描述等相關信息)。 CodeBlocks允許預定義一些內容,當新建C/C++文件時這些內容會自動添加到文件的開始處。這里把預定義的內容稱為default code。可以通過菜單[Settings–>Editor–>Default Code]來設置defaulg code,通過菜單[File->New->File]創建的代碼文件將自動添加上default code。例如:

            /*************************************************************************
            * Project:
            * Function:
            *************************************************************************
            * $Author: mario $
            * $Name: $
            *************************************************************************
            *
            * Copyright 2007 by company name
            *
            ************************************************************************/

            1.10.2 縮寫(Abbreviation)

                定義一個常用的代碼片斷[typing],并給它提供一個名字[Abbreviation],在寫程序的時候,只要給出這個名字,然后按快捷鍵Ctrl + J,CodeBlocks就會用預先定義的代碼片斷來替換該名字。(譯者注:VS中也有類似的功能,在C#程序時,只要寫出關鍵字for,然后連續按兩次 Tab鍵,編輯器會自動生成for語句的框架,是不是很方便?~_~)。通過菜單[Settings->Editor]來設置 Abbreviation,如下圖:

            代碼縮寫

                abbreviation也支持參數變量(Parametrisation)(如:$NOW表示當前時間)。如:

            縮寫 -->  縮寫2

            1.10.3 個性化(Personalities)

                CodeBlocks的配置信息被作為應用程序數據而保存在codeblocks文件夾的<user>.conf文件中。該配置文件中保存的 信息包括:上次打開的項目、代碼編輯器的設置、符號欄顯示等等。默認的個性化設置被保存在default.conf文件中。通過命令行參數 -personality=myuser來調用CodeBlocks,配置信息將被保存到myuser.conf中。如果該文件不存在,系統將自動創建 它。如果以命令行的方式來啟動CodeBlocks,并傳遞命令參數--personality=ask,將會顯列出當前所有的修改化配置列表,用戶選擇 其一啟動CodeBlocks。如下圖:

            個性化啟動

            1.10.4 配置文件(Configuration Files)

                CodeBlocks的配置信息保存在codeblocks目錄下的default.conf文件中。當使用個性化設置的時候,配置信息將被保存到<personality>.conf文件里。

                cb_share_conf(一個輔助工具,可以在CodeBlocks安裝目錄里找到)被用來管理與保存這些設置信息。

                如果你想為電腦的不同賬戶定義一個公用的默認設置,defual.conf文件應該被保存到\Documents and Settings\Default User\Application Data\codeblocks。CodeBlocks在第一次啟動的時候,會將該配置文件拷貝到當前賬戶的application data目錄下(并作為當前帳戶的配置文件)。

                如果想在usb設備上創建一個綠色版本號的CodeBlocks,請執行下面步驟:將CodeBlocks安裝目錄拷貝到usb設備上,將配置文件 default.conf拷貝到該目錄中,該配置文件將被用于全局的設置。確保系統有權限對該文件進行寫入,否則CodeBlocks對配置文件的修改將 不會被保存。

            1.10.5 導航與搜索(Navigate and Search)

                CodeBlocks提供了很多方法用于文件和函數之間導航。書簽就是最常用的一種方式。通過快捷鍵Ctrl + B在源文件中設置/刪除一個書簽,通過Alt + PgUp或Alt + PgDn在不同的書簽之間跳轉。

                在管理窗口的Project視圖中選中解決方案或項目,右鍵點擊在彈出菜單中選擇[Find file],輸入你查找的文件名稱,然后回車,該文件將被選中(如果文件存在的話),再按回車,編輯器就會打開該文件。如下圖:

            查找文件

                在CodeBlocks中,你可以很容易的在頭文件與源文件之間導航:

                    1. 將光標置于頭文件被包含處(例如:#include “header.hpp”),右鍵選擇性“open include file”,編輯器將打開該包含文件。(譯者注:可以在VS中使用快捷鍵 Ctrl + Shift + G 實現同樣的操作。這個功能非常方便,特別是要查看源代碼時。)

            open_include

                    2. 通過右鍵菜單的[Swap header/source],在頭文件與源文件之間切換。

                    3. 選中一個定義(如變量名,類型名等等),在右鍵菜單中選擇[Find declaration],編輯器就會打開該定義的聲明。(譯者注:可以使用右鍵菜單的[Find implementation]定位到函數的實現處,在VS中使用快捷鍵F12實現同樣的操作。這也是一個非常方便的功能。)。

            轉到定義處

                 CodeBlocks提供多種方式用于對單個文件或整個目錄進行搜索。通過菜單[Search->Find]或[Search –> Find in Files]來打開搜索對話框。

                Alt + G 和 Ctrl + Alt + G這兩個快捷鍵用于打開 文件/函數 跳轉對話框,只要輸入文件/函數的名稱,就可以很方便的跳轉到指定文件或函數。文件名/函數名搜索還支持 * 和 ? 等能配符。(譯者注:可以使用Visual Assist插件在VS中實現類似的功能。這兩個功能真的很方便實用。)

            select_func    select_func

                提示: 使用Ctrl + PgUp 和 Ctrl + PgDn可以在前后函數之間跳轉。

                在文本編輯器中,使用快捷鍵Ctrl + Tag可以在當前所有打開的文件之間跳轉。(譯者注:VS也有類似的功能,而且快捷鍵也是Ctrl + Tag,這是巧合嗎?)

            在打開文章之間跳轉

                    顯示行號。通過菜單[Settings->General Settings],選中[Show line numbers]來顯示行號。使用快捷鍵 Ctrl + G 可以快速的跳轉到指定行。

            1.10.6 符號視圖(Symbol view)

                CodeBlocks管理窗口提供的符號視圖,以樹的形式顯示(導航)C/C++源文件中的類、函數、變量定義。可以選擇符號顯示的區域是:當前文件、當前項目、整個解決方案。(譯者注:與VS的類視圖面板實現類似的功能。)

            符號視圖

             

                提示: 在搜索輸入框中輸入符號的名稱,符號瀏覽器將會過濾不符條件的符號。

                符號視圖將符號分為如下分類:

            •         Global functions: 全局函數;
            •         Global typedefs: 通過typedef定義的別名;
            •         Global variables:全局變量;
            •         Preprocessor symbols: 通過#define宏定義的預處理指示符;

                結構和類的定義顯示在pre-processor symbols下面。如果一個分類被選中,屬于該分類的標識符將顯示在視圖的下半部分。雙擊這些標識符,代碼編輯器將定位到定義這些標識符的文件所在處。

            1.10.7 集成外部的幫助文檔

                CodeBlocks支持添加外部的幫助文檔集成到開發環境中。通過菜單[Settings->Environment]來設置。把你選擇的chm格式的文檔以添加到Help Files,并將其作為默認的幫助文檔,在編輯器中選擇一個函數,對應的文檔就會出現通過快捷鍵F1。…

            1.10.8 集成外部工具

                通過菜單[Tools->Configuration Tools–>Add],把外部工具集成到CodeBlocks開發環境中。這些外部的工具允許以參數的形式訪問CodeBlocks的內建 (Built-in)變量(如當前項目所在的文件夾${PROJECT_DIR})。利用這個功能,我們給CodeBlocks添加一個菜單項:打開當前 項目所在的文件夾。請看圖:

            集成外部工具

            (譯者注:這是一個非常實用的功能。利用這個功能,我在我的CodeBlocks中,添加了三個我最常用的菜單項:使用Notepad++打開當前文件;打開當前項目所在的文件夾;以Dos窗口打開當前文件夾。爽歪歪~~)

            external_tool

            1.11 使用CodeBlocks的小提示(Tips)

                這節我們將展示一些CodeBlocks非常有用的提示。

            1.11.1 修改跟蹤(Tracking of Modifications)

                CodeBlocks通過行號旁邊的小堅條顏色來跟蹤源文件的修改。未保存的修改行將被標記為黃色,而已保存的修改行標記為綠色。你可以通過菜單[Search->Goto next changed line]或者[Search->Goto previous changed line]在修改內容之間導航(對應的快捷鍵是 Ctrl + F3 和 Ctrl + Shift + F3)。(譯者注:VS也提供類型的功能。)

            跟蹤文本修改

            trace_modify

                可以通過菜單[Settings->Editor->Margins and caret],取消選中[Use Changebar]來取消該功能。

                提示: 如果文件被關閉,記錄在該文件上的undo/redo信息和修改標識(changebars)將會清空。如果文件處理打開狀態,可以通過菜單[Edit->Clear changes history]或者右鍵菜單相應選項來顯式地清空這些信息。

            1.11.2 與其他應用程序交互

                CodeBlocks能夠在運行時與其他應用程序進行交互。windows下通過DDE(Dynamic Data Exchange)實現這種進程間的交互,而在其他操作系統下,基于TCP來實現交互。

                以下語法的命令可以發送給CodeBlocks運行實例:

                    [<command>(“<parameter>”)

                當前可以使用的命令:

                    Open: 命令[Open(“D:\Temp\test.txt”)],在CodeBlocks實例中(或者啟動新的CodeBlocks進程,如果需要的話)打開一個文件。

                    OpenLine:命令[OpenLine(“D:\Temp\test.txt:10”)],在CodeBlocks中打開文件,并定位到指定行數,冒號后面的數字用于指定行號。(譯者注:不是很明白原文的意思:This command opens a le at a given line number in a CodeBlocksi nstance.)

                    Raise:讓CodeBlocks實例獲得焦點。不就給該命令提供參數。

            1.11.3 配置環境變量

                操作系統的配置信息被定義在環境變量中。例如環境變量Path包含一個編譯器的安裝目錄路徑,操作系統在運行期間都可以隨時訪問該環境變量。如果同一編譯器的另一個版本被安裝,就可能會發生錯誤,如:調用的編譯器版本不正確。

                有時候因為項目的需要,必須在同一機器上安裝同一編譯器的不同版本。為了避免上述錯誤的發生,可以在項目啟動之前修改環境變量。顯然,這個方法很容易出 錯,很不靈活。基于這個問題,CodeBlocks提供了一個簡單的解決方法:創建不同版本的、只能在CodeBlocks內使用的環境變量,然后根據項 目的需要選擇適當的版本環境變量。通過菜單[Settings->Environment],在Environment Varibales面板中點擊Create按鈕創建不同版本的環境變量,如下圖:

            環境變量設置  

            1.11.4 切換布局

                CodeBlocks可以根據手頭任務的需要選擇不同的配置/視圖,并保存這些配置/視圖。默認情況下這些配置保存在default.conf文件里。以 命令行方式啟動Cdoeblocks,并傳遞--personality=ask參數,就可以在列出的個性化配置列表中選擇一個視圖啟動。有時候,你可能 希望在應用程序的使用過程中切換布局,如編碼模式與調試模式下可能需要不同的布局。CodeBlocks提供了一種機制來實現這種需求,通過菜單 [View->Layouts->Save current],并輸入布局的命名,保存布局。通過[View->Layouts->Layout name]來切換布局。(譯者注:筆者使用的版本,通過[View->Perspectives]來保存\切換布局,如下圖:)

            切換布局

            1.11.5 項目切換

                多個項目同時在CodeBlocks中打開時,用戶希望快速的在這些項目之間切換。CodeBlocks提供一組快捷鍵來實現:

            •        Alt + F5 :將視圖中前一個項目設為激活(Active)項目。(譯者注:類似于VS中將某個項目設為啟動項目。)
            •         Alt + F6: 將視圖中后一個項目設為激活項目。
            •         F11: 在編輯器中切換源文件(name.cpp)和頭文件(name.h)。
             
            1.11.6 擴展編譯器設置

                在編譯一個項目的過程中,編譯信息將會顯示在消息窗口的Build Log視圖中。如果你想獲取更詳細的編譯信息,通過菜單[Settings->Compiler and Debugger],在Other Settings面板中選擇Compiler logging下拉列表項:

            編譯選項設置

                “Full command line”選項意味著將在Build Log視圖中顯示所有的編譯信息。可以將這些日志信息保存為HTML文件,通過選中”Save build log to HTML file when finished’。另外,通過選中”Display build process bar”,CodeBlocks支持在Build Log視圖中顯示編譯進度。

            1.11.7 編輯器縮放

                CodeBlocks提供了一個非常高效的編輯器。這個編輯器允許你縮放打開文本的字體大小。如果你的鼠標有滾輪,你只要按住Ctrl鍵,同時滾支鼠標滾輪,就可以實現文本的縮放。

                提示: 通過菜單[Edit->Special commands->Zoom->Reset]來重置縮放。

            1.11.8 自動換行模式

                在CodeBlcoks中打開一個文本文件,使用自動換行模式可以將很長的行以多行的形式顯示在一個屏幕內,有利于編輯。通過菜單[Settings->Editor->Other Options],選中Word warp來激活自動換行模式。…

            1.11.9 塊選文本

                CodeBlocks支持在代碼編輯器中塊選文本。按住Alt鍵的同時按住鼠標左鍵在編輯器選擇一塊區域。如果你想選擇數組的幾列進行復制和粘貼,這個功能是非常有用的(譯者注:VS也提示類似的功能,快捷鍵也一樣。)。如圖:

            塊選文本

            1.11.10 代碼折疊

                CodeBlocks支持代碼折疊,允許將函數、類的實現折疊起來。

                提示: 通過菜單[Settings->Editor->Folding],可以設置代碼折疊的樣式和層次限制(depth limit)。

            1.11.11 自動完成

               在CodeBlocks中打開一個項目時,編譯器的相關目錄(include目錄)與項目的源文件/頭文件將被解析,提取有關類型定義、函數、宏等的信 息,CodeBlocks使用這些信息來實現自動完成功能。通過菜單[Settings->Editors->Code completion]啟用該功能,通過快捷鍵 Ctrl + Space 來顯示提示信息(譯者注:默認的快捷鍵 Ctrl + Space 不適合中國人的鍵盤習慣,建議改成其他快捷鍵。)。通過[Settings->Editor->Syntax highlighting],你可以添加自定義的關鍵字。

            1.11.12 查找破損文件(Find broken files)

                如果一個文件已經從磁盤中刪除,但它仍然被包含在項目文件(project.cbp)中(譯者注:項目的文件信息保存在*.cbp文件里。),這個文件在項目面板中顯示一個破損符號(如下圖)。應該通過上下文菜單[Remove file from project]將它從項目中移除。

            borken_file

                一個大的工程可能包含許多子文件夾,搜索破損文件會非常花費時間。CodeBlocks提供ThreadSearch插件來解決這個問題。在ThreadSearch中輸入要查找的表達式,并設置查找的范圍:“Project files”或者“Workspace files”,ThreadSearch將會分析所有包括在項目或者解決方案中的文件。當ThreadSearch找到一個跋損文件的時候,會發出一個文件丟失的錯誤。

            1.11.13 包含庫

                在項目的編譯選項中,你可以通過”Add”按鍵添加項目所使用的庫。庫可以以絕對路徑的形式給出,也可以只給出名稱而無需提供lib前綴和文件擴展名。

                例如:存在這樣的一個庫文件:<path>\libs\lib<name>.a,只要給出<name>,鏈接器就可以找到對應的庫文件。

            1.11.14 對象鏈接順序

                在編譯過程中,源文件name.c/cpp將會被編譯成目標文件name.o,然后鏈接器把獨立的目標文件鏈接成可執行文件name.exe(對于嵌入式 系統,將鏈接成name.elf)。這種情況下,可能需要預先定義對象鏈接的順序。在CodeBlocks中,可以設置相關源文件的優先級來實現。在上下 文菜單中選擇[Properties],在Build標簽中定義。較低優先級使文件較先鏈接。

            1.11.15 自動保存

                CodeBlcoks允許自動保存當前正在編輯的文件和項目,或者對它們進行備份。可以通過菜單[Settings->Environment->Autosave]來激活該功能。

            1.11.16 文件擴展名設置

                在CodeBlocks中,可以選擇多次方式來處理文件不同后綴的文件,可以在菜單[Settings->Environment settings->Files extension handling]設置相應的處理方式:“Launch an external program”指定外部程序來打開文件;“Launch the associated application”使用系統默認程序來打開文件;“Open it in Code::Blocks editor”使用Code::Blocks編輯器來打開文件。如下圖:

            文件處理方式  

            1.12 通過命令行操作CodeBlocks

                CodeBlocks能夠通過命令行來運行。在這種情況下,需要通過一些選項來控制項目的構建過程。因為CodeBlocks是scriptable的,所以CodeBlocks項目的構建可以集成到你自己的工作過程中。

                codeblocks.exe /na /nd --no-splash-screen --built <name>.cbp --target=’Release’

            <filename> 指定CodeBlock項目文件(*.cbp)或解決方案文件(*.workspace)。

            --file=<filename>[:line]:使用CodeBlocks打開指定文件。可選的行號指示代碼編輯器跳轉到該行。

            /h, --help:顯示幫助信息。

            /na, --no-check-associations:不執行文件關聯檢查。(windows only)

            /nd, --no-dde:不啟動DDE服務。(windows only)

            /ni, --no-ipc:不啟動IPC服務。(Linux and Mac only)

            /ns, --no-splash-screen:應用程序啟動的時候,不顯示啟動畫面。

            /d, --debug-log:顯示應用程序的調試日志

            --prefix=<str>:設置共享數據文件夾的前綴

            /p, --personality=<str>, --profile=<str>:設置要使用的個性化配置。你可以使用“ask”參數來列出可選擇的個性化配置。

            --rebuild:清理并重新編譯工程或解決方案。

            --build:編譯工程或解決方案。

            --target=<str>:設置編譯模式,如:--target=’Release’

            --no-batch-window-close:編譯完成的時候,不關閉日志窗口。

            --batch-build-notify:編譯完成的時候顯示提示信息

            --safe-mode:啟動的時候,所有插件都不可用。

            > <build log file>:重定向標準輸出到日志文件。這是標準DOS/*nix shell的輸出重定向,并非CodeBlocks內置選項。

            1.13 快捷鍵

                在IDE中使用快捷鍵比使用鼠標更為高效。下表給出CodeBolcks默認的快捷鍵。(譯者注:筆者將CodeBlocks中的快捷鍵設置為與VS大體一致,使用CodeBlocks時非常順手。)

            Function Shortcut Key
            Undo last action Ctrl + Z
            Redo last action Ctrl + Shift + Z
            Cut selected text Ctrl + X
            Copy selected text Ctrl + C
            Paste text from clipboard Ctrl + V
            Select all text Ctrl + A
            Swap header / source F11
            Comment highlighted code Ctrl + Shift + C
            Uncomment highlighted code Ctrl + Shift + X
            Duplicate line caret is on Ctrl + D
            Auto-complete / Abbreviations Ctrl + Space / Ctrl + J
            Show call tip Ctrl + Shift + Space
            Swap line caret is on with line above it Ctrl + T
            Toggle bookmark Ctrl + B
            Goto previous bookmark Alt + PgUp
            Goto next bookmark Alt + PgDown
            Toggle current block folding F12
            Toggle all folds Shift + F12

            CodeBlocks代碼編輯器組件提供的快捷鍵,這些快捷鍵不能重新綁定(rebound)。

            Function Shortcut Key
            Magnify text size. Ctrl + Keypad "+"
            Reduce text size. Ctrl + Keypad "-"
            Restore text size to normal. Ctrl + Keypad "/"
            Cycle through recent files. Ctrl + Tab
            Indent block. Tab
            Dedent block. Shift + Tab
            Delete to start of word. Ctrl + BackSpace
            Delete to end of word. Ctrl + Delete
            Delete to start of line. Ctrl + Shift + BackSpace
            Delete to end of line. Ctrl + Shift + Delete
            Go to start of document. Ctrl + Home
            Extend selection to start of document. Ctrl + Shift + Home
            Go to start of display line. Alt + Home
            Extend selection to start of display line. Alt + Shift + Home
            Go to end of document. Ctrl + End
            Extend selection to end of document. Ctrl + Shift + End
            Go to end of display line. Alt + End
            Extend selection to end of display line. Alt + Shift + End
            Expand or contract a fold point. Ctrl + Keypad "*"
            Create or delete a bookmark. Ctrl + F2
            Go to next bookmark. F2
            Select to next bookmark. Alt + F2
            Find selection. Ctrl + F3
            Find selection backwards. Ctrl + Shift + F3
            Scroll up. Ctrl + Up
            Scroll down. Ctrl + Down
            Line cut. Ctrl + L
            Line copy. Ctrl + Shift + T
            Line delete. Ctrl + Shift + L
            Line transpose with previous. Ctrl + T
            Line duplicate. Ctrl + D
            Find matching preprocessor conditional, skipping nested ones. Ctrl + K
            Select to matching preprocessor conditional. Ctrl + Shift + K
            Find matching preprocessor conditional backwards, skipping nested ones. Ctrl + J
            Select to matching preprocessor conditional backwards. Ctrl + Shift + J
            Previous paragraph. Shift extends selection. Ctrl + [
            Next paragraph. Shift extends selection. Ctrl + ]
            Previous word. Shift extends selection. Ctrl + Left
            Next word. Shift extends selection. Ctrl + Right
            Previous word part. Shift extends selection. Ctrl + /
            Next word part. Shift extends selection. Ctrl + \

            Files

            Function Shortcut Key
            New file or project Ctrl + N
            Open existing file or project Ctrl + O
            Save current file Ctrl + S
            Save all files Ctrl + Shift + S
            Close current file Ctrl + F4 / Ctrl + W
            Close all files Ctrl + Shift + F4 / Ctrl + Shift + W

            CodeBlocks的Tab組件所提供的快捷鍵,這些快捷鍵不能重新綁定(rebound)。

            Function Shortcut Key
            Activate next open file Ctrl + Tab
            Activate previous open file Ctrl + Shift + Tab

            View

            Function Shortcut Key
            Show / hide Messages pane F2
            Show / hide Management pane Shift + F2
            Move project up (in Project tree) Ctrl + Shift + Up
            Move project down (in Project tree) Ctrl + Shift + Down
            Activate prior (in Project tree) Alt + F5
            Activate next (in Project tree) Alt + F6
            Zoom in / out Ctrl + Roll Mouse Wheel
            Focus editor CTRL + Alt + E

            Search

            Function Shortcut Key
            Find Ctrl + F
            Find next F3
            Find previous Shift + F3
            Find in files Crtl + Shift + F
            Replace Ctrl + R
            Replace in files Ctrl + Shift + R
            Goto line Ctrl + G
            Goto next changed line Ctrl + F3
            Goto previous changed line Ctrl + Shift + F3
            Goto file Alt + G
            Goto function Ctrl + Alt + G
            Goto previous function Ctrl + PgUp
            Goto next function Ctrl + PgDn
            Goto declaration Ctrl + Shift + .
            Goto implementation Ctrl + .
            Open include file Ctrl + Alt + .

            Build

            Function Shortcut Key
            Build Ctrl + F9
            Compile current file Ctrl + Shift + F9
            Run Ctrl + F10
            Build and Run F9
            Rebuild Ctrl + F11

            Debug

            Function Shortcut Key
            Debug F8
            Continue debugging Ctrl + F7
            Step over a code block F7
            Step into a code block Shift + F7
            Step out of a code block Ctrl + Shift + F7
            Toggle breakpoint F5
            Run to cursor F4
            Previous error Alt + F1
            Next error Alt + F2

            posted @ 2012-07-28 09:16 鐘謝偉 閱讀(4936) | 評論 (0)編輯 收藏

            2012年7月25日

            X,擱筆快兩周了

            一下子就快過了兩周的時間了,忙活去了,調一個數據擬合的東西,發現擬合的東西是一種很坑爹的事情,初值的設定,是一件不容易的事情呀,變量的數量一多,那調整的難度更是一躍而上,花了兩個周的時間,調出了一個勉強符合規范的結果,誒,感覺像是浪費了時間,青春呀。。。。

            posted @ 2012-07-25 22:39 鐘謝偉 閱讀(149) | 評論 (0)編輯 收藏

            2012年7月13日

            學習auto_ptr

            前言:

            一個變量在聲明中通過另一個對象進行賦值

              • Person q("Mickey"); // constructor is used to build q
              • Person r(q);           // copy constructor is used to build r
              • Person p = q;         // copy constructor is used to initialize in declaration
              • P = q;                    // assignment operator, no constructor or copy constructor
            • 函數參數傳遞中
              • f(p);
            • 函數返回一個對象時

            具體內容:

            1. 關于auto_ptr解析

            2. auto_ptr_ref

            posted @ 2012-07-13 18:00 鐘謝偉 閱讀(1161) | 評論 (4)編輯 收藏

            2012年7月10日

            讀《計算機科學概論》-2. 數據操控

            1. 通用寄存器用于臨時存儲由CPU正在操縱的數據。這些寄存器存儲算術/邏輯單元電路的輸入值以及該部件所產生的結果。

            2. 利用總線,CPU給出相關存儲單元的地址以及相應的電信號(告知存儲電路,將在指定單元中獲取數據),從主存儲器中取出數據。

            3. 通用寄存器用于存儲操作中馬上用到的數據,主存儲器用于存儲不久就要用到的數據,海量存儲器用于存儲暫時不會用到的數據。

            4. 不管是精簡指令集計算機還是復雜指令集計算機,機器指令可以分為3類:(1)數據傳輸類;(2)算術/邏輯類;(3)控制類

            5. 計算機與其他設備的通信通常是通過稱為控制器的中間設備來處理的。

            6. 因為控制器是連接到一臺計算機的總線上的,因此它就有可能在CPU不使用總線的幾納秒時間里實現它與主存儲器的通信,控制器這種存取主存儲器的能力稱為直接存儲器存取(DMA)。它的不利影響是,使計算機總線的通信復雜化。

            7. 計算機產生字符并向打印機發送字符的速度要遠遠快于打印機能夠打印的速度,計算機盲目地將數據發送給打印機,可能的結果會使得數據丟失。因此,諸如打印文件這樣的過程都會包括持續的雙向對話,計算機和外圍設備之間交換設備狀態的信息,協調它們之間的活動。這個過程稱為握手。

            posted @ 2012-07-10 15:05 鐘謝偉 閱讀(337) | 評論 (0)編輯 收藏

            2012年7月9日

            templates

                 摘要: 由于想要對STL的具體實現有一個清楚的認識,因此在此先溫習一下關于templates的相關知識。 模版的使用,將不同類型的具體實現交給了編譯器去完成,從而實現了代碼量的縮減,以達到清晰鮮明的目的。 如有個函數 1: template <typename Type> // this is the template parameter declaration 2: Type m...  閱讀全文

            posted @ 2012-07-09 14:48 鐘謝偉 閱讀(1010) | 評論 (0)編輯 收藏

            僅列出標題  下一頁
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆檔案

            IT網站

            My Friends

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲AV无一区二区三区久久| 香蕉久久永久视频| 久久精品草草草| 久久综合九色综合久99| 国内精品久久久久影院薰衣草| 人妻精品久久无码区| 91精品婷婷国产综合久久| 久久免费观看视频| 亚洲av伊人久久综合密臀性色| 久久精品国产免费一区| 久久久久国产精品三级网| 久久久无码精品亚洲日韩蜜臀浪潮| 91精品国产高清久久久久久91| 99久久精品免费看国产一区二区三区| 国产一级持黄大片99久久| 久久无码国产专区精品| 久久男人中文字幕资源站| 国产一区二区精品久久| 成人午夜精品无码区久久| 99久久综合国产精品二区| 久久综合88熟人妻| 亚洲天堂久久久| 久久久久噜噜噜亚洲熟女综合| 久久九九亚洲精品| 国产亚洲精久久久久久无码| 色播久久人人爽人人爽人人片aV | 777米奇久久最新地址| 亚洲国产精品无码久久青草| 国产精品嫩草影院久久| 国产精品久久久久久久久免费| 亚洲精品无码久久久久去q| 国产精品成人久久久| 伊人久久大香线蕉综合5g| 色99久久久久高潮综合影院| 久久天天躁狠狠躁夜夜不卡| 国产激情久久久久影院小草 | 婷婷久久综合| 亚洲人成无码www久久久| 日本久久中文字幕| 久久久久99这里有精品10| 久久无码AV一区二区三区|