Closed as564335sa closed 2 years ago
就是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 的
-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\"") xmake输出的是这样的 --pd "\"MICROLIB SETA 1\"",还是不对
add_asflags("--pd", "__MICROLIB SETA 1") 试试
add_asflags("--pd", "__MICROLIB SETA 1") 试试
这样不行,这样和add_asflags("--pd __MICROLIB SETA 1")是一样的
__MICROLIB 是 mdk 程序 并且对所有 cpu 都是必须的么? 如果是的话,我可以内置上
__MICROLIB 是 mdk 程序 并且对所有 cpu 都是必须的么? 如果是的话,我可以内置上
这是一个可选项,选择是使用完整的c库还是microlib,相当于gcc里是否启用nanolib,需要可配置的
我改进过了,直接走 add_defines("__MICROLIB") 就行了,对 armasm 也生效,https://github.com/xmake-io/xmake/commit/b7e124e4f8e77e75025717cee6b6066dfa34d813
再试试,xmake update dev
我改进过了,直接走 add_defines("__MICROLIB") 就行了,对 armasm 也生效,b7e124e
再试试,xmake update dev
刚刚更新了,没有效果?
对了,如果可以建议把link里也加入选项,--library_type=microlib,在启用microlib的时候
刚刚更新了,没有效果?
xmake update dev 是全量更新 win上得等ci跑完,要么仅更新脚本,xmake update -s dev
对了,如果可以建议把link里也加入选项,--library_type=microlib,在启用microlib的时候
你可以列下 具体有哪些目标库类型,程序类型,以及它们需要的配置集
回头可以根据 rule 针对性配置一些基础配置,例如 add_rules("mdk.microlib")
ok了,谢谢大佬,可选的目标库我只见过microlib这一个,可选择启用或者不启用,其它用到的选项目前都可以用add flags添加,完美
--library_type=microlib
这个也是必须的么?对于 microlib ..armcc/armclang 都是这个flag?
是的,启用microlib armcc、armasm、armlink都是需要启用的,刚看了下armclang编译器的参数,也是同样的flag,目前cortexm系列上armcc就够用了
--library_type=microlib
这个是 ldflags 还是 cxflags? 我加到 ldflags/arflags 里面提示不支持么
--library_type=microlib
这个是 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的时候,可能由于不能添加-DMICROLIB flag,编译不过,必须取消编译和链接过程中的-DMICROLIB定义才行,这里貌似需要调整 工程我打包上传了,文件夹里的builder.mk,是从EIDE里弄出来的编译选项,可以参考一下; par.zip