Are you an LLM? You can read better optimized documentation at /zh/examples/embed/keil-mdk.md for this page in Markdown format
相关例子工程:Example
xmake 会自动探测 Keil/MDK 安装的编译器,相关 issues #1753。
使用 armcc 编译
sh
$ xmake f -p cross -a cortex-m3 --toolchain=armcc -c
$ xmake使用 armclang 编译
sh
$ xmake f -p cross -a cortex-m3 --toolchain=armclang -c
$ xmake可执行程序
EXPLORER
src
main.c
xmake.lua
Lua xmake.lua
1234
target("hello")
add_rules("mdk.console")
add_files("src/*.c")
set_runtimes("microlib")
需要注意的是,目前一些 mdk 程序都使用了 microlib 库运行时,它需要编译器加上 __MICROLIB 宏定义,链接器加上 --library_type=microlib 等各种配置。
我们可以通过 set_runtimes("microlib") 直接设置到 microlib 运行时库,可以自动设置上所有相关选项。
静态库程序
EXPLORER
src
foo
foo.c
foo.h
main.c
xmake.lua
Lua xmake.lua
12345678910111213
add_rules("mode.debug", "mode.release")
target("foo")
add_rules("mdk.static")
add_files("src/foo/*.c")
set_runtimes("microlib")
target("hello")
add_rules("mdk.console")
add_deps("foo")
add_files("src/*.c")
add_includedirs("src/foo")
set_runtimes("microlib")