mdk增加編譯路徑
1. Keil MDK4.6添加頭文件
頭文件可以放在工程目錄和軟體目錄中,在工程設置中有頭文件的目錄設置。
2. eclipse 怎麼編譯keil工程
1. 把KeilBuilder.exe復制到MDK的編譯器目錄下, 一般為: C:\Keil\ARM\BIN40下, 這要看你的MDK安裝在哪了.
2. 新建一個C Project 工程, 並選擇Cross GCC交叉編譯工具為本工程編譯工具.
.通過菜單File -> new -> C Project 新建一個空的C工程. 在彈出的對話框中如下圖, 注意要選擇"Cross GCC"工具鏈:
3. 為新建的工程導入Keil工程或僅導入源文件.
4. 設置Eclipse工程交叉編譯環境.
.在左邊的"Porject Explorer"窗口內滑鼠右鍵單擊工程名, 選擇最後的菜單項"Properties"項.
.在C/C++ Build -> Settings界面中, 設置"Configuration"為"[ All configurations ]"; 設置"Cross Setttings"的"Path"即交叉工具鏈路徑為KeilBuilder所有的目錄, 如C:\Keil\ARM\BIN40. 如下圖:
.在"Cross GCC Compiler"的"Command"下填入"KeilBuilder -no", 表示什麼也不做; 另外的"Cross GCC Linker"及"Cross GCC Assembler"的"Command"中也設置為同值. 此設置為防Eclipse對不存在的GCC工具的報警, 如下圖:
.在C/C++ Build 界面中, Builder Settings 中去掉"Use default build command"上的勾, 並在"Build command"中填入"KeilBuilder.exe -d xxxx -e". 基中xxx為工程根目錄路徑, "-d"表示設置KeilBuilder的工程路徑, "-e"表示在編譯時自動對Eclipse工程進行設置, 目前僅設置"C/C++ Build" -> "Settings" -> "Cross GCC Compiler" -> 「Symbols」和」Includes」以及」Cross GCC Assmebler」 -> 「General」項. 如下圖:
.在C/C++ Build 界面中的"Behaviour"選項卡中, 在"Build(Incremental build)"中填入"-s"表示安靜編譯; 在"Clean"中填入"-c"表示清理工程. 如下圖:
.在C/C++ Build 中的 "Discovery Options" 中去掉 "Enable generate scanner info command"選項. 如下圖:
.不用設置預編譯宏或者Includes選項, 因為KeilBuilder會自動幫忙加進去. 所以, 有時候你看到代碼還有一大堆的錯誤時, 編譯一次後, 刷新工程(右鍵工程名 -> "Refresh")就木有錯誤鳥.
5. 到此, 可以編譯你的工程了. 通過菜單項"Project" -> "Build All"編譯工程, 或"Project" -> "Clean..."清理工程. 編譯不通過或得到不正確Hex文件的繼續往下看. 如下圖:
6. 在Eclipse中添加一個外部工具, 這樣可以通過Eclipse菜單項運行KeilBuilder, 方便.
.在Eclipse菜單中選擇Run -> External Tools -> External Tools Configurations...
.在彈出的對話框中雙擊"Program" 增加一個外部工具.
.在Name中填入"KeilBuilder".
.在"Main"選項卡中, Location通過"Browse File System..." 選擇KeilBuilder程序, 如: C:\Keil\ARM\BIN40\KeilBuilder.exe; 在Working Directory中填入KeilBuilder所在的目錄, 如C:\Keil\ARM\BIN40.
.在"Build"選項卡中, 去掉"Build before launch"上的勾.
.最後單擊"Apply" -> "Run"完成添加, 並運行KeilBuilder工具.
此後你就可以通過菜單Run -> External Tools -> KeilBuilder 來快速運行KeilBuilder工具了. 如下2圖:
7. 經過前面4步的設置, 你的工程編譯很可能會編譯不通過, 或者編譯出來的Hex文件下載不正確. 那是因為一些編譯器/鏈接器選項你還沒有配置.
這時, 你可以通過菜單Run -> External Tools -> KeilBuilder來運行KeilBuilder工具, 通過界面來設置這些參數. 或者也可以直接用記事本打開工程目錄中的"cts.ini"(如果工程目錄中不存在此文件, 請轉到KeilBuilder所在的目錄下的"cts.ini", 如果KeilBuilder所在目錄下也沒有, 那麼請雙擊運行下KeilBuilder程序, "cts.ini"就會自動生成)對參數進行修改.
注意, 在KeilBuilder界面上設置參數時, 必須選擇好自己的工程目錄, 如果沒有選擇工程目錄, 設置的結果會保存到KeilBuilder所在的目錄下的"cts.ini"文件中. KeilBuilder在首次運行時, 會在其所在目錄下生成cts.ini文件並設置參數為默認值. KeilBuilder在每次編譯一個工程時, 如果該工程目錄下發現"cts.ini", 就使用工程目錄下的"cts.ini"; 如果沒有發現"cts.ini"文件, 則把KeilBuilder所在目錄下的"cts.ini"文件復制一份到工程目錄下, 然後再編譯.
關於"cts.ini"文件中的這些參數, 它對應於Keil MDK環境中的ASM編譯器/C編譯器/Linker選項. 因為時間問題, 在KeilBuilder中並未實現(以後有空再搞吧)類似於Keil uVision中的選項式配置. 如果熟悉這些參數最好, 不熟的話可以先在Keil uVision中配置好, 再對應添加到"cts.ini"中.
在"cts.ini"文件中的"ASM=" 後面的內容對應於Keil uVision工程選項中的"Asm"選項.
在"cts.ini"文件中的"CC=" 後面的內容對應於Keil uVision工程選項中的"C/C++"選項.
在"cts.ini"文件中的"LNK=" 後面的內容對應於Keil uVision工程選項中的"Linker"選項.
8. 設置"cts.ini"文件中的編譯選項確實不是一般人能搞定. 我也不懂(誰懂的做個說明分享下吧, 可以的話還能集成為UI, 更方便). 因為人懶, 不想去深究這些編譯(鏈接)器選項, 於是想到了個折中的辦法: 通過Keil uVision來設置好這些參數並編譯工程, 然後把它實時的編譯選項顯示出來以供參考! 這樣當編譯選項無法搞定時, 就把整個工程交給keil uVision來編譯一次, 然後參考實時獲取的參數再對Eclipse工程的"cts.ini"文件做相應的修改就OK了.
在keil uVision中捕獲它的編譯選項, 需要做如下的設置. 在工程屬性"Options for Target xxxx"的"User"選項卡中 設置keil編譯後運行」KeilBuilder.exe -p」. 表示捕獲keil uVision編譯選項, 如下圖:
3. KEIL 的編譯產生的垃圾文件的路徑單片機
在output菜單裡面設置路徑,如果不要那些垃圾文件,箭頭所指全部不勾選就可以了。
4. 用MDK編譯的時候,stm3210e_eval.c文件添加到工程了而且設置了頭文件目錄為什麼說找不到文件
雖然你添加的程序沒有在主程序中調用,但編譯的時候仍然會該文件裡面對函數語法檢查。檢查一下該文件有無調用其他文件函數,以及本文件中有無語法錯誤。
5. 使用KEIL軟體,我想添加一個頭文件進入工程目錄,應該怎麼做呢
1、首先,在電腦上開啟自己的keil軟體,如圖所示。
6. 如何設置MDK的標准庫文件路徑
C++標准庫頭文件,不同的編譯器默認路徑不相同。 Vc6.0一般在安裝目錄下的\VC98\INCLUDE目錄,比如C:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE。 Vs一般在位於$VSPATH\VC\include路徑下面。 gcc一般默認在 /usr/include目錄下。
7. MDK新手求助:從別的地方考來的程序,應該本身沒有什麼問題,但是我點擊build target後有一個錯誤:
兩種方法,一在編譯配置界面C編譯選項卡設定Include路徑.二是在程序里把#Include語句後的文件寫成絕對路徑.
8. stm32編譯前為什麼要配置keil中C/C++中的define 和include Paths
這是Keil與編譯器的一個相互通信的過程,准確的來說,是編譯器讀取Keil的配置
ARM系列的有一些公司的庫編譯器,是與Keil的一些配置通信的.
比如你說的那個 Define,include path
一般來說,我們用Keil做51或者STR710等等一些單片機的程序時候,不需要配置剛才的兩個選項,為什麼?
因為C51和ARM7的編譯器不去讀取上述的配置.
而Cortex-M3編譯器,則讀取上述的配置,並轉換成自己的內編譯器配置
比如:你在Define裡面寫:THIS_MY_DEF
那麼,編譯器在編譯的時候,文件里會隱性的定義出這么一句:
#define THIS_MY_DEF
通常,我們寫Define里,都寫USE_STDPERIPH_DRIVER,STM32F10X_HD這兩個
然後,編譯的時候,文件里會隱性定義
#define USE_STDPERIPH_DRIVER
#define STM32F10X_HD
而這兩個宏,決定了STM32的庫函數的一些配置.
如果你把那個Define文本框空閑出來,那麼,編譯器找不到任何配置信息,自然就出錯.
如果你一定要把Define文本框空閑,那麼,你就要在Stm32F10x.h等多個文件裏手工添加
#define USE_STDPERIPH_DRIVER
#define STM32F10X_HD
過程比較繁瑣,如果一旦換了晶元,整個的工程就有多處要修改, 工作量太大,且容易出錯
,就不如在配置的時候操作一次那麼簡便
9. 有許多文件,不知道在keil裡面怎麼編譯,求教啊
新建一個工程,把C文件全部加進去,設置好頭文件路徑。具體在網上搜索資料(關於在一個工程中加入多個C文件方法)。
10. 如何在keil中添加carm 編譯器
Keil和MDK共存,按照以下步驟: 1 先安裝 Keil C51,安裝目錄改為:"D:\Keil2"(我是安裝在D盤的) 2 再安裝RealView MDK,目錄:"D:\Keil" 3 把Keil2下的C51文件夾全部復制到 Keil下 4 把Keil2下的 UV4(或者UV3)下的所有文件復制粘貼到 Keil下的UV4文件