1. lcp1768常式中system_lpc17xx.c文件是怎麼生成的
在寫程序答絕的時候掘舉數有一些東西是編譯器自帶的一些文件,比如芯
片的頭文件,再比如匯編的啟動代碼,在LPC17XX 里還有一個系
統初始化文件。在我們的工程里主要有3 個頭文件,2 個C 文件,
1 個.S 文件。分判首別是:LPC17xx.h 、core_cm3.h、system_LPC17xx.h;
core_cm3.c 、system_LPC17xx.c ; startup_LPC17xx.s ; 其中
startup_LPC17xx.s 是系統自動載入的ARM 啟動匯編代碼。
LPC17XX.h 是晶元的頭文件,定義的是晶元寄存器的結構體
2. 如何在命令行上編譯我的delphi項目
Borland出品的Delphi,有著閃電般的編譯速度,但是在界面控制項使用較多、工程項目較大的時候,編譯一個工程仍需要一段時間,打開龐大的Delphi IDE,也需要時間。其實,在一個工程開發結束,調試完成之後的Release編譯,完全可以用命令行來執缺絕枝行,因為Delphi的編譯器參數不像C++編譯器那樣復雜。
筆者把Delphi聯機手冊中關於命令行編譯(command-line compiler)的幾篇主題作了翻譯,希望對Delphi開發人員有幫助。
目錄
1. Command-line compiler
命令行編譯器
2. Command-line compiler options
命令行編譯器選項
3. Compiler directive options
編譯器指令選項
4. Compiler mode options
編譯模式選項
5. DCC32.CFG file
編譯器配置文件DCC32.CFG
6. Debug options
調宏大試選項
7. Directory options
目錄選項
8. IDE command-line options
IDE命令行選項
9. Generated files
幾個IDE自動生成的文件介紹
Command-line compiler
命令行編譯器
Delphi's command-line compiler (dcc32.EXE) lets you invoke all the functions of the IDE compiler (DELPHI32.EXE) from the DOS command line (see IDE command-line options. Run the command-line compiler from the DOS prompt using the syntax:
Delphi』s命令行編譯器(dcc32.exe)允許你從DOS命令行方式(參照:IDE命令行選項)實現IDE編譯器(delphi32.exe)的所有功能。用DOS命令運行命令行編譯器語法如下:
dcc32 [options] filename [options]
dcc32 [選項] [文件名] [選項]
where options are zero or more parameters that provide information to the compiler and filename is the name of the source file to compile. If you type dcc32 alone, it displays a help screen of command-line options and syntax.
零或多個參數給編譯器提供信息,文件名指定需要編譯的源文件名。如果你單獨輸入dcc32,它會顯示一個關於命令行編譯的選項和語法的屏幕。
If filename does not have an extension, the command-line compiler assumes .dpr, then .pas, if no .dpr is found. If the file you're compiling to doesn't have an extension, you must append a period (.) to the end of the filename.
如果文件名沒有擴展名,命令行編譯器會查找擴展名為.dpr的同名文件,如果找不到,則伏敏查找擴展名為.pas的同名文件。如果你的源文件確實沒有擴展名,你需要在文件名的末尾添加(.)。
If the source text contained in filename is a program, the compiler creates an executable file named filename.EXE. If filename contains a library, the compiler creates a file named filename.DLL. If filename contains a package, the compiler creates a file named filename.BPL. If filename contains a unit, the compiler creates a unit file named filename.dcu.
如果指定的源文件是一個工程文件,編譯器會創建一個擴展名為.EXE的同名可執行文件。如果指定的源文件是一個庫文件,編譯器創建一個擴展名為.DLL的同名動態鏈接庫文件。如果指定的源文件是一個包文件,編譯器會創建一個擴展名為.BPL的同名包。如果指定的源文件是一個單元文件,編譯器會創建一個擴展名為.dcu的目標代碼文件。
You can specify a number of options for the command-line compiler. An option consists of a slash (/) or immediately followed by an option letter. In some cases, the option letter is followed by additional information, such as a number, a symbol, or a directory name. Options can be given in any order and can come before or after the file name.
你可以為命令行編譯器指定多個參數。一個參數包含一個破折號「-」(或「/」)和緊跟著的一個選項字元構成。通常情況下,選項字元後面會跟一些附加的信息,如一個數字、一個符號、一個目錄等。選項可以是任意順序並且可以在源文件名前面或後面。
Command-line compiler options
命令行編譯選項
The IDE lets you set various options through the menus; the command-line compiler gives you access to these options using the slash (/) delimiter. You can also precede options with a hyphen (-) instead of a slash (/), but those options that start with a hyphen must be separated by blanks. For example, the following two command lines are equivalent and legal:
IDE允許你使用菜單來設置各種編譯選項,而命令行編譯器允許你使用字元「/」作為分隔符來設定這些編譯選項。你也可以使用連字元「-」來代替「/」,但是用「-」引出的參數之間必須用空格隔開。例如,下面兩個命令都是等同的也是合法的:
DCC -IC:/DELPHI -DDEBUG SORTNAME -$R- -$U+
DCC /IC:/DELPHI/DDEBUG SORTNAME /$R-/$U+
The first command line uses hyphens with at least one blank separating options. The second uses slashes and no separation is needed.
第一個編譯命令用「-」引出參數,且參數之間有多個空格分隔。第二個編譯命令用「/」引出參數,參數之間不必要分隔。
The following table lists the command-line options. In addition to the listed options, all single-letter compiler directives can be specified on the command line, as described in Compiler directive options.
下列表中列出所有的命令行參數。在附加的選項列表中,所有的單字元編譯器指令都可以在命令行編譯中使用,詳情請參照:編譯器指令。
Option Description
選項 描述
Aunit=alias 設置單元別名
B 編譯所有單元
CC 編譯控制台程序
CG 編譯圖形界面程序
Ddefines 編譯條件符號定義
Epath 可執行文件輸出路徑
Foffset 查找運行期間錯誤
GD 生成完整.Map文件
GP 生成.Map文件Public段
GS 生成.Map文件Segment段
H 輸出提示信息
Ipaths 文件包含路徑
J 生成.Obj目標文件
JP 生成C++類型.Obj目標文件
Kaddress Set image base address
LEpath 包.BPL文件輸出路徑
LNpath .dcp文件輸出路徑
LUpackage 使用運行期間包列表
M 編譯有改動的源文件
Npath dcu/dpu文件輸出目錄
Opaths .Obj文件(匯編目標代碼文件)路徑
P 按8.3格式文件名查找
Q 安靜模式
Rpaths 資源文件(.RES)路徑
TXext 目標文件擴展名
Upaths 單元文件路徑
V 為Turbo Debugger生成調試信息文件
VN 以.Giant格式生成包含命名空間的調試信息文件(將用於C++Builder)
VR 生成調試信息文件.rsm
W 輸出警告信息
Z Disable implicit compilation
$directive Compiler directives
--Help 顯示編譯選項的幫助。同樣的,如果你在命令行單獨輸入dcc32,也會顯示編譯選項的幫助。
--version 顯示產品名稱和版本
Compiler directive options
編譯器指令選項
Delphi supports the compiler directives described in Compiler directives. The $ and D command-line options allow you to change the default states of most compiler directives. Using $ and D on the command line is equivalent to inserting the corresponding compiler directive at the beginning of each source file compiled.
Delphi支持用編譯器指令關鍵字描述的編譯器指令。使用「$」和「D」命令行選項可以改變所有的默認編譯器狀態。用「$」和「D」命令行選項等同於在源文件的前面添加編譯器指令。
Switch directive option
編譯器指令選項開關
The $ option lets you change the default state of all of the switch directives. The syntax of a switch directive option is $ followed by the directive letter, followed by a plus (+) or a minus (-). For example:
「$」允許你改變每一種編譯器指令默認狀態。編譯器指令的語法是「$」後緊跟一個指令字元,再跟一個「-」或「+」。例如:
dcc32 MYSTUFF -$R-
compiles MYSTUFF.pas with range-checking turned off, while:
不使用邊界檢查編譯MYSTUFF.pas單元:
dcc32 MYSTUFF -$R+
compiles it with range checking turned on. Note that if a {$R+} or {$R-} compiler directive appears in the source text, it overrides the -$R command-line option.
使用界面檢查編譯MYSTUFF.pas單元。如果將編譯器指令{$R+}或{$R-}添加到源文件的開始,它將覆蓋從命令行傳入的參數。
You can repeat the -$ option in order to specify multiple compiler directives:
你可以用多個「$」來指定多個編譯器指令,如:
dcc32 MYSTUFF -$R--$I--$V--$U+
Alternately, the command-line compiler lets you write a list of directives (except for $M), separated by commas:
命令行編譯器允許作用逗號分隔的編譯器指定列表,如:
dcc32 MYSTUFF -$R-,I-,V-,U+
只需要用一個「$」符號。
Only one dollar sign ($) is needed.
注意,因為$M的格式不一樣,你不能在逗號分隔的指令列表中使用$M
Note that, because of its format, you cannot use the $M directive in a list of directives separated by commas.
Conditional defines option
條件編譯選項
The -D option lets you define conditional symbols, corresponding to the {$DEFINE symbol} compiler directive. The -D option must be followed by one or more conditional symbols separated by semicolons (;). For example, the following command line:
「-D」選項允許你定義一個編譯條件,符合你用{$DEFINE symbol}定義的編譯器指令。「-D」選項後必須跟隨一或多個用分號分隔的編譯條件符號,如下命令:
dcc32 MYSTUFF -DIOCHECK;DEBUG;LIST
defines three conditional symbols, iocheck, debug, and list, for the compilation of MYSTUFF.pas. This is equivalent to inserting:
定義了三個編譯條件符號:IOCHECK,DEBUG,LIST,用於MYSTUFF.pas單元中。這等同於在源文件中插入以下語句:
{$DEFINE IOCHECK}
{$DEFINE DEBUG}
{$DEFINE LIST}
如果你指定了多個「-D」選項,你可以聯接它們,如下:
dcc32 MYSTUFF -DIOCHECK-DDEBUG-DLIST
等同於第一個例子。
編譯模式選項
有幾個選項能影響編譯器自身的功能。像其它選項一個,你可以使用「/」或「-」的格式。別忘了用至少一個空格分隔這些選項。
選項(-M)
命令行編譯器使用構造邏輯的方式來維護工程。「-M」選項指示編譯器檢查所有與編譯文件相關聯的文件。用這個參數會導致編譯時間增大。
一個源文件在下列情況下會重新編譯:
The source file for that unit has been modified since the unit file was created.
源文件被創建以來被修改過;
用「$I」指令包含的任何文件,用「$L」包含的任何.Obj文件,或用「$R」關聯的任何資源文件.Res,比源文件中的要新;
單元介面部分interface的uses段有改動。
在單元編譯時指令「-Z」在構造邏輯期不被接受。
If you were applying this option to the previous example, the command would be:
如果你在上一個例子中使用這個指令,編譯命令就應該是:
dcc32 MYSTUFF -M
編譯所有 選項(-B)
用於取代要知道哪些單元需要更新-M的選項,你可以使用-B選項來更新所有你的程序中關聯的單元。你不能在程序中同時使用-M和-B。選項-B比-M速度更慢,而且它並不是必需的。
如果你在前一個例子中使用這個參數,編譯命令就應該是:
dcc32 MYSTUFF -B
查找錯誤 選項(-F)
當一個程序由於運行期間錯誤而終止時,它會顯示一個錯誤號和錯誤地址在錯誤發生時。用-Faddress選項來指定錯誤地址,你在源文件中能找到引發錯誤的位置,如果你的程序和單元編譯時附加了調試信息(使用$D編譯器指令)。
為了命令行編譯器能用-F選項查找運行期間錯誤,你必須傳遞與第一次編譯時相同的指令列表。
先前提到過,你的程序和單元必須啟用調試信息,命令行編譯器才能查找運行期間錯誤。默認情況下,所有的程序和單都是啟用調試信息的,除非你用{-D}或-$D-指令關閉它,這樣,命令行編譯器就不能查找運行期間錯誤了。
使用包(-LU)選項
使用-LU選項來在編譯時添加你應用程序中要用到的運行期間包。運行期間包已經在「工程選項」對話框中列舉的,不必再在命令行中添加。
Disable implicit compilation (-Z) option
(此選項在delphi6.0/7.0中有不同描述,在此不作翻譯)
目標文件擴展名(-TX)選項
選項-TX允許你改寫默認的輸出文件擴展名。例如:
dcc32 MYSTUFF -TXSYS
生成的將是一個叫做MYSTUFF.SYS的文件。
Quiet (-Q) option
安靜模式(-Q)選項
安靜模式選項禁止在編譯時顯示文件名及代碼行數,如果命令行編譯器調用這個選項的話。
它的輸出僅限於起始時行版權信息以及結尾的統計信息。當然,如果發生錯誤,它也會輸出。
DCC32.CFG file
DCC32.CFG配置文件
你可以設置一個編譯選項列表到一個叫做DCC32.CFG的配置文件中,它將用於編譯時附加到命令行參數後。配置文件的每一行都相當於一個額外的命令行參數插入到實際的命令行參數前(注意,是實際參數前)。因而,你可以使用這個配置文件改變一些命令行參數的默認設置。
命令行編譯器允許你輸入相同的命令行參數,它將忽略所有除最後一個之外。這個的話,盡管通過配置文件你可以改變一些設置,你仍然可以覆蓋它使用命令行參數。
當dcc32啟動時,它查找DCC32.CFG文件在當前目錄。如果文件沒有找到,dcc32會查找它所在的目錄。
以下是一個DCC32.CFG配置文件的例子,定義了關於文件包含、OBJ文件包含、單元文件搜索路徑信息,並改變了編譯器指令$O和$R的默認值。
-IC:/DELPHI/INC;C:/DELPHI/SRC
-OC:/DELPHI/ASM
-UC:/DELPHI/UNITS
-$R+
-$O-
現在,如果你輸入:
dcc32 MYSTUFF
編譯器把它當作你輸入如下命令:
dcc32 -IC:/DELPHI/INC;C:/DELPHI/SRC -OC:/DELPHI/ASM -UC:/DELPHI/UNITS -$R+ -$O- MYSTUFF
調試選項
編譯器有兩個命令行參數可以生成外部調試信息:MAP文件選項和調試信息選項。
Map file (-G) options
Map文件(-G)選項
選項-G指示命令行編譯器生成一個.map文件來查看一個可執行文件的布局。不同於可二進制的可執行文件和.dcu文件,.map文件是一個可讀的文本文件,可以被列印或是其它文本編輯器編輯。選項-G後必須跟字元S、P或D,去決定你想要在.map文件列出的信息。一個.MAP文件被分成三個節:
Segment
Publics
Line Numbers
-GS選項只輸出Segment Section,-GS選項輸出Segment和Publics,-GD輸出所有的三個Sections.-GD選項也生成一個擴展名為.DRC的文件包含所有的用resourcestring關鍵字聲明的字元串常量。
用默認的編譯選項{$D+,L+}編譯模塊(程序或單元),Publics Section列舉所有的全局變數、過程和函數,Line Numbers Section列舉模塊中所有的過程和函數的行號。如果用{$D+,L-}編譯選項編譯模塊,Publics Section中僅列舉在單元的interface部分定義的符號。如果用{$D-}選項編譯模塊,在Line Numbers Section沒有任何入口。
調度選項(-V)
選項-V、-VN、-VR會指示編譯器生成調試信息,它們能在命令行中組合使用。
生成Turbo Debugger使用的調試信息的選項(-V)
當你在命令行中使用-V選項時,編譯器會在可執行文件的末尾附加與Turbo Debugger5.0一致的外部調試信息。Turbo Debugger包含代碼和硬體級別的強大的斷點。
雖然附加調試信息到查執行文件中會使可執行文件增大,但是它並不影響實際可執行文件中的可執行代碼,也不需要額外的內存來啟動程序。
3. 如何在linux中安裝gcc編譯器
2004年4月20日最新版本的GCC編譯器3.4.0發布了。目前,GCC可以用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據需要選擇安裝支持的語言。GCC 3.4.0比以前版本更好地支持了C++標准。本文以在Redhat Linux上安裝GCC3.4.0為例,介紹了GCC的安裝過程。
安裝之前,系統中必須要有cc或者gcc等編譯器,並且是可用的,或者用環境變數CC指定系統上的編譯器。如果系統上沒有編譯器,不能安裝源代碼形式的GCC 3.4.0。如果是這種情況,可以在網上找一個與你系統相適應的如RPM等二進制形式的GCC軟體包來安裝使用。本文介紹的是以源代碼形式提供的GCC軟體包的安裝過程,軟體包本身和其安裝過程同樣適用於其它Linux和Unix系統。
系統上原來的GCC編譯器可能是把gcc等命令文件、庫文件、頭文件等分別存放到系統中的不同目錄下的。與此不同,現在GCC建議我們將一個版本的GCC安裝在一個單獨的目錄下。這樣做的好處是將來不需要它的時候可以方便地刪除整個目錄即可(因為GCC沒有uninstall功能);缺點是在安裝完成後要做一些設置工作才能使編譯器工作正常。在本文中我採用這個方案安裝GCC 3.4.0,並且在安裝完成後,仍然能夠使用原來低版本的GCC編譯器,即一個系統上可以同時存在並使用多個版本的GCC編譯器。
按照本文提供的步驟和設置選項,即使以前沒有安裝過GCC,也可以在系統上安裝上一個可工作的新版本的GCC編譯器。
1. 下載
在GCC網站上(http://gcc.gnu.org/)或者通過網上搜索可以查找到下載資源。目前GCC的最新版本為 3.4.0。可供下載的文件一般有兩種形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是壓縮格式不一樣,內容完全一致,下載其中一種即可。
2. 解壓縮
根據壓縮格式,選擇下面相應的一種方式解包(以下的「%」輪棗叢表示命令行提示符):
% tar xzvf gcc-3.4.0.tar.gz
或者
% bzcat gcc-3.4.0.tar.bz2 | tar xvf -
新生成的gcc-3.4.0這個目錄被稱為源目錄,用${srcdir}表示它。以後在出現${srcdir}的地方,應該用真實的路徑來替換它。用pwd命令可以查看當前路徑。
在${srcdir}/INSTALL目錄下有詳細的GCC安裝說明,可用瀏覽器打開index.html閱讀。
3. 建立目標目錄
目標目錄(用${objdir}表示)是用來存放編譯結果的地方。GCC建議編譯後的文件不要放在源目錄${srcdir]中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是${srcdir}的子目錄。
例如,可以這樣建立一個叫 gcc-build 的目標目岩攜錄(與源目錄${srcdir}是同級目錄):
% mkdir gcc-build
% cd gcc-build
以下的操作主要是在目標目錄 ${objdir} 下進行。
4. 配置
配置的目的是決定將GCC編譯臘櫻器安裝到什麼地方(${destdir}),支持什麼語言以及指定其它一些選項等。其中,${destdir}不能與${objdir}或${srcdir}目錄相同。
配置是通過執行${srcdir}下的configure來完成的。其命令格式為(記得用你的真實路徑替換${destdir}):
% ${srcdir}/configure --prefix=${destdir} [其它選項]
例如,如果想將GCC 3.4.0安裝到/usr/local/gcc-3.4.0目錄下,則${destdir}就表示這個路徑。
在我的機器上,我是這樣配置的:
% ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java
將GCC安裝在/usr/local/gcc-3.4.0目錄下,支持C/C++和JAVA語言,其它選項參見GCC提供的幫助說明。
5. 編譯
% make
這是一個漫長的過程。在我的機器上(P4-1.6),這個過程用了50多分鍾。
6. 安裝
執行下面的命令將編譯好的庫文件等拷貝到${destdir}目錄中(根據你設定的路徑,可能需要管理員的許可權):
% make install
至此,GCC 3.4.0安裝過程就完成了。
6. 其它設置
GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在${destdir}目錄下分別存放,如命令文件放在bin目錄下、庫文件在lib下、頭文件在include下等。由於命令文件和庫文件所在的目錄還沒有包含在相應的搜索路徑內,所以必須要作適當的設置之後編譯器才能順利地找到並使用它們。
6.1 gcc、g++、gcj的設置
要想使用GCC 3.4.0的gcc等命令,簡單的方法就是把它的路徑${destdir}/bin放在環境變數PATH中。我不用這種方式,而是用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的GCC編譯器。
首先,查看原來的gcc所在的路徑:
% which gcc
在我的系統上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目錄下分別做一個符號連接:
% cd /usr/bin
% ln -s ${destdir}/bin/gcc gcc34
% ln -s ${destdir}/bin/g++ g++34
% ln -s ${destdir}/bin/gcj gcj34
這樣,就可以分別使用gcc34、g++34、gcj34來調用GCC 3.4.0的gcc、g++、gcj完成對C、C++、JAVA程序的編譯了。同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。
6.2 庫路徑的設置
將${destdir}/lib路徑添加到環境變數LD_LIBRARY_PATH中,最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變數了。
例如,如果GCC 3.4.0安裝在/usr/local/gcc-3.4.0目錄下,在RH Linux下可以直接在命令行上執行或者在文件/etc/profile中添加下面一句:
setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib:$LD_LIBRARY_PATH
7. 測試
用新的編譯命令(gcc34、g++34等)編譯你以前的C、C++程序,檢驗新安裝的GCC編譯器是否能正常工作。
8. 根據需要,可以刪除或者保留${srcdir}和${objdir}目錄。
4. 怎樣在vs2013中使用icc英特爾編譯器
自帶編譯器,編譯C/C++的cl.exe,編譯C#的csc.exe。
在VS的安裝目錄下找到一個vscvarsall.bat(我的在D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC下),把它拖進命令提示符中,回車運行後就能單獨使用編譯器。
PS:
C/C++編譯:cl 源文件.c/cpp
C#編譯:csc 源文件.cs
1. 「cl不是可用的內部命令或可執行程序」
----原因:環境變數Path沒有設置好。
----解決:在環境變數Path中添加VC的bin目錄。Path= D:\Microsoft Visual Studio 9.0\VC\bin。在D:\Microsoft Visual Studio 9.0\VC\ce\bin下還有其他一些純如編譯器,看名芹絕字是交叉編譯用的
2.「mspdb80.dll無法找到」
----原因:vs2008的VC\bin目錄下缺少msobj80.dll、mspdb80.dll、mspdbcore.dll、mspdbsrv.exe這四個文件。
----解決:在D:\Microsoft Visual Studio 9.0\Common7\IDE下復制這四個文件到VC\bin。
3.解決以上問題以後,可以直接在命令行的任何目錄下做首啟編譯C/C++文件了。可是又出現新狀況:
「fatal error: cannot open include file」
----原因:vs2008未設置include和lib的環境變數。
----解決:
3.1在環境變數里添加變數INCLUDE,包含進VC\Include和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include(這個是安裝vs時自動安裝在C盤的)兩個目錄
INCLUDE=D:\Microsoft Visual Studio 9.0\VC\include; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
3.2添加變數LIB,包含進VC\lib和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib(這個也是安裝vs時自動安裝在C盤的)兩個目錄:
LIB=D:\Microsoft Visual Studio 9.0\VC\lib; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
4.提示:fatal error LNK1104: 無法打開文件「kernel32.lib」,(在IDE裡面運行沒有問題,因為IDE中採用了另外的封裝了庫)
----原因:vs2008未設置include和lib的環境變數。
----解決:在環境變數里添加變數LIB,C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
或者將kernel32.lib直接到vc的lib目錄下也可以
5. S-Functionbuilder編譯時提醒未找到支持的編譯器或SDK怎麼解決
要看你鬧衫具體的應用。 大部分模塊是不需要使用編譯器的,只有液宏腔少部分產品可能需要用到編譯器,例如MATLAB Compiler、Stateflow,以及絕缺Simulink的加速模擬模式等。 如果你只是使用MATLAB的普通功能,可以不裝編譯器。
6. C++編譯器
C++編譯器及IDE(Dev_C++、WxDev_C++、VC等)
Dev-C++
本軟體就不用說了,這是pfan論壇上的首選IDE環境;他默汪液認安裝minGW作為編譯器——就是windows化了的GCC編譯器。版本應該是3.4;
由於其編輯器使用簡單,而內核gcc3.4對c99和c++2003的支持度都比較高,所以,這個軟體比較適合標准C/C++初學者!除了支持外部庫,Dev-C++還支持自己的開發包,你可以從升級「包」這個功能上獲得許多有用的東西;
你可以在http://www.bloodshed.net獲得它的下載。
WxDev-C++
不知道是英雄落幕還是怎麼的?Dev-C++已經停止更新了!最新的版本應該是4.9.9.2——不更新,這個就計較郁悶了!不過,另一波人把這個項目接了過來,在Dev-C++的基礎上添加了很多的東西,比如RAD工具(就是像VB那樣,能快速通過拖拉就可以做win32程序界面的工具),還修改了前作Dev-C++的一些bug。
還有就是它兼容vc6、vc7、vc8的工程設置——就是說,vc6、vc7、vc8的工程可以照搬到WxDev-C++下來使用!
當然,最大的好消息,就是,這么好的工具竟然也是免費的!
補充一下:WxDev_c++是WxWidgets與Dev_c++是結合,WxWidgets是跨平台的界面開發包,並且是開源的,目前使用的比較廣泛.
下載:http://wxdsgn.sourceforge.net/
官方論壇:http://wxdsgn.sourceforge.net/index.php
Code::Blocks
這個有著怪名字的東西,是個比較新的免費IDE,當前是面向C/C++使用而開發的工具;注意,這個是開源跨平台的哦!這個軟體是用插件式構架的,那麼這個軟體就設定成可以非常的個性化!
由於它支持多編譯器,所以,它沒有默認綁定編譯器;由於它支持的編譯器比較多,我就挑點講:
minGW的GCC編譯器、vc7還有vc8以及Borland C++ 5.5;
下載:http://www.codeblocks.org/
Ultimate++
這個軟體也式跨平台的——就我看來,其最大的特點,就是有自己的GUI庫!
下載:http://www.ultimatepp.org/index.html
Eclipse
這個巨大的東西,也是跨平台的——不過這個東西太燃陵肆大了點,我也就不說了——不符合簡單易學的規則。
下載:http://www.eclipse.org/
VC
最後,哈哈,因為個人的原因,我把Microsoft公司的VC產品放在最後。VC6、VC7、VC8者是當前還活躍的3個ms的C/C++編譯環境——不過可惜皮轎的是,他們都不是免費的!
在這里提VC的原因呢,有兩點:
1. 雖然他們不免費,不過,在中國來說——等於免費,原因嗎?大家心知肚明,我就不說了!
2. MS不提供大餐,甜點還是有的:
Microsoft Visual C++ Toolkit 2003
這個編譯工具包——免費!
然後Microsoft Visual C++ 2005也有一個免費版!當然不是全功能的,不過對於初學者,也是夠用了!
更多:http://www.compilers.net/Dir/Compilers/CCpp.htm
上面說的很清楚,不過你還是要考慮自己的具體情況,根據自己情況而定。如果做軟體要求與微軟系統兼容很好,當然還是用自己的東西,畢竟自己的東西自己了解。我現在用的VS2003,個人感覺挺好。
7. 在MFC下,想在CTestView類里添加一個Windows消息處理Oncreate(LPCREATESTRUCT lpcs),用編譯器怎麼添加
可以通過打開類向導添褲核加,在message Maps 選項卡裡面 選擇CTestView類 然後在右邊的列表中選擇WM_CREATE消息,雙擊或者點擊添加按鈕就可以了,上面是在VC6裡面
VC7裡面就缺御是在CTestView的屬胡扮掘性選項卡上 點擊添加事件找到添加
8. lpc1788單片機用mdk keil4編程頭文件怎麼寫
兩個不同的內核,基本上都要重寫的
先到下面這個網站下載lpc1788的驅動庫,里做漏皮面有串口的常式,keil4的和iar編譯搜備器的都有,然後根據純差常式來改:
http://www.lpcware.com/content/nxpfile/lpc177x-and-lpc178x-cmsis-compliant-standard-peripheral-firmware-driver-library-keil
9. 怎樣使用c++編譯器
對於初學c/c++的人,我建議最好在使用dos 環境下的編譯器,這樣不至於在GUI的環境(比如vc、bcb)里給弄糊塗了。那麼在dos環境下如何使用c/c++的編譯器了,其實很簡單,下面用vc為例;
首先你告訴LIB和INCLUDE在什麼地方,在就告訴編譯的程序在什麼地方,這樣我們則攜可以在任何目錄下都可以使用編譯器,要作到上面的,就理所當然要設定path了!設定如下:
vc:假定你的vc安裝在如下目錄:
C:\Program Files\Microsoft Visual Studio\VC98\Include
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include
C:\Program Files\Microsoft Visual Studio\VC98\Lib
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib
C:\Program Files\Microsoft Visual Studio\VC98\Bin
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
那麼寫一個批處理文件(autoexec.bat),內容如下:
set path=C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin (找到vc的編譯器cl.exe位置,同時也可以調用MSPDB60.DLL文件)
set Include=C:\Program Files\Microsoft Visual Studio\VC98\Include;C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include
set Lib=C:\Program Files\Microsoft Visual Studio\VC98\Lib;
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib
當然如果你不用mfc也可以這樣:
set path=C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
set Include=C:\Program Files\Microsoft Visual Studio\VC98\Include
set Lib=C:\Program Files\Microsoft Visual Studio\VC98\Lib
如果你是使用的bcb的編譯器,設置方法與上面類似!
那麼如何在dos 用c/c++的編譯器編譯程序呢?
那就更簡單了!如下:
C:\> CL test.cpp <回車>(呵呵,當然你可以在其他目錄下去執行,只要是你編譯的cpp文件返段的目錄就行)
至於執行cl.exe有些什麼參孫世伏數實現條件編譯,就要自己去查了!:)
當然,上面的方法不適合開發大型的項目,因為很明顯文檔、程序管理不方便!
10. vc6.0 怎樣添加wsock32.lib
首先把wsock32.lib放在當前目錄(或者其他你想要的目錄下)
用代碼添加,#pragmacomment(lib, 「悄賀wsock32.lib」)
編閉瞎譯器添加,project->Setting->Link裡面轎運空添加也可