-
-
Notifications
You must be signed in to change notification settings - Fork 790
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MDK armcc编译器使用问题 #1835
Comments
就是ASFLAGS中有一个--pd "__MICROLIB SETA 1"这个选项,我用add_asflags添加没成功,我再试试 |
-Dxx 走 add_defines("__MICROLIB") 就行了,其他flags 走 add_asflags 参考 https://github.com/xmake-io/xmake/blob/master/tests/projects/mdk/hello/xmake.lua 例子,里面我加了 __MICROLIB 的 |
在启用MICROLIB的时候,armasm有个编译选项,在makefile里是这样的--pd "__MICROLIB SETA 1" ,这个用add_asflags添加应该怎么写啊,试了好几种方式都不对 |
add_asflags("--pd __MICROLIB SETA 1")这样写xmake输出的编译选项是--pd __MICROLIB SETA 1,不对, |
add_asflags("--pd", "__MICROLIB SETA 1") 试试 |
这样不行,这样和add_asflags("--pd __MICROLIB SETA 1")是一样的 |
__MICROLIB 是 mdk 程序 并且对所有 cpu 都是必须的么? 如果是的话,我可以内置上 |
这是一个可选项,选择是使用完整的c库还是microlib,相当于gcc里是否启用nanolib,需要可配置的 |
我改进过了,直接走 add_defines("__MICROLIB") 就行了,对 armasm 也生效,b7e124e 再试试,xmake update dev |
|
对了,如果可以建议把link里也加入选项,--library_type=microlib,在启用microlib的时候 |
xmake update dev 是全量更新 win上得等ci跑完,要么仅更新脚本,xmake update -s dev |
你可以列下 具体有哪些目标库类型,程序类型,以及它们需要的配置集 回头可以根据 rule 针对性配置一些基础配置,例如 |
ok了,谢谢大佬,可选的目标库我只见过microlib这一个,可选择启用或者不启用,其它用到的选项目前都可以用add flags添加,完美 |
这个也是必须的么?对于 microlib ..armcc/armclang 都是这个flag? |
是的,启用microlib armcc、armasm、armlink都是需要启用的,刚看了下armclang编译器的参数,也是同样的flag,目前cortexm系列上armcc就够用了 |
这个是 ldflags 还是 cxflags? 我加到 ldflags/arflags 里面提示不支持么 |
看错了,是 ldflags,另外 microlib 这个是 生成库需要,还是 console 也需要? 还是根据 链接的库 是 microlib 来决定 console 也要加 --library_type=microlib |
都需要,这个在keil里是个全局选项,勾选的话会自动在armcc,armasm,armlink加上对应的flag |
看了下,这个应该是 c库选项,可以作为 runtime 的配置提供。。类似 vs 的 MT/MD runtime 我改进了下,可以改成这样配置,set_runtimes("microlib") 会自动对 mdk 加上对应的 flags add_rules("mode.debug", "mode.release")
set_runtimes("microlib")
target("foo")
add_rules("mdk.static")
add_files("src/foo/*.c")
target("hello")
add_deps("foo")
add_rules("mdk.console")
add_files("src/*.c", "src/*.s")
add_includedirs("src/lib/cmsis") |
Nice! 试了下,好用 |
我试了试新增的armcc支持,有问题:
ldflag中需要增加一些flag,这个可以用add_ldflag指定;
armasm编译.s有问题,这个好像没有API可以指定,当使用microlib的时候,可能由于不能添加-D__MICROLIB flag,编译不过,必须取消编译和链接过程中的-D__MICROLIB定义才行,这里貌似需要调整
工程我打包上传了,文件夹里的builder.mk,是从EIDE里弄出来的编译选项,可以参考一下;
par.zip
The text was updated successfully, but these errors were encountered: