We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
合并多个静态库object不完整
target("rtthread") set_kind("static") -- add_files("rtthread/*.c") add_files("rtthread/*.a") after_build(function (target) print(target:objectfiles()) end)
error: unknown source file: rtthread/libDrivers_gcc.a 2.如果合并多个静态库并且添加.c文件,第一次build 正确,第二次object就会不完整。
error: unknown source file: rtthread/libDrivers_gcc.a
target("rtthread") set_kind("static") add_files("rtthread/*.c") add_files("rtthread/*.a") after_build(function (target) print(target:objectfiles()) end)
第一次 { "build/.objs/rtthread/cross/none/release/rtthread/aaa.c.o", "build/.objs/rtthread/cross/none/release/rtthread/libDrivers_gcc.a.o.dir/board.o", "build/.objs/rtthread/cross/none/release/rtthread/libDrivers_gcc.a.o.dir/drv_usart.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/mempool.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/ipc.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/idle.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/object.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/irq.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/mem.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/scheduler.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/components.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/timer.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/thread.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/device.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/kservice.o", "build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/clock.o", "build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/cpuport.o", "build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/context_gcc.o", "build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/backtrace.o", "build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/showmem.o", "build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/div0.o", "build/.objs/rtthread/cross/none/release/rtthread/libc_gcc.a.o.dir/syscalls.o", "build/.objs/rtthread/cross/none/release/rtthread/libc_gcc.a.o.dir/time.o", "build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs_posix.o", "build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs_fs.o", "build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs_file.o", "build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs.o", "build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/msh.o", "build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/shell.o", "build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/cmd.o", "build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/msh_file.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/ringblk_buf.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/dataqueue.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/waitqueue.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/pipe.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/completion.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/workqueue.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/ringbuffer.o", "build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/serial.o" } 第二次
{ "build/.objs/rtthread/cross/none/release/rtthread/aaa.c.o", "build/.objs/rtthread/cross/none/release/rtthread/libDrivers_gcc.a.o.dir/board.o", "build/.objs/rtthread/cross/none/release/rtthread/libDrivers_gcc.a.o.dir/drv_usart.o" }
build正确
如上
请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:
测试工程 xmake-test 有完整xmake.lua
The text was updated successfully, but these errors were encountered:
合并静态库,建议走 merge_staticlib 在 after_link 里面做,这个目前更可靠,也不会有.o 冲突问题。
#1638
Sorry, something went wrong.
如果只合并多个静态库,没有.c文件,object会直接报错。
目前只有 c++ rules 才带有merge功能,你一个 c 文件都没有,要么加个空文件,要么手动设置 add_rules("c++") 或者直接 add_rules("utils.merge.archive")
add_rules("c++")
add_rules("utils.merge.archive")
多谢。问题已经解决。
No branches or pull requests
合并多个静态库object不完整
描述问题
错误打印
error: unknown source file: rtthread/libDrivers_gcc.a
2.如果合并多个静态库并且添加.c文件,第一次build 正确,第二次object就会不完整。
第一次
{
"build/.objs/rtthread/cross/none/release/rtthread/aaa.c.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDrivers_gcc.a.o.dir/board.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDrivers_gcc.a.o.dir/drv_usart.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/mempool.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/ipc.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/idle.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/object.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/irq.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/mem.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/scheduler.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/components.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/timer.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/thread.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/device.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/kservice.o",
"build/.objs/rtthread/cross/none/release/rtthread/libKernel_gcc.a.o.dir/clock.o",
"build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/cpuport.o",
"build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/context_gcc.o",
"build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/backtrace.o",
"build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/showmem.o",
"build/.objs/rtthread/cross/none/release/rtthread/libCPU_gcc.a.o.dir/div0.o",
"build/.objs/rtthread/cross/none/release/rtthread/libc_gcc.a.o.dir/syscalls.o",
"build/.objs/rtthread/cross/none/release/rtthread/libc_gcc.a.o.dir/time.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs_posix.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs_fs.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs_file.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFilesystem_gcc.a.o.dir/dfs.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/msh.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/shell.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/cmd.o",
"build/.objs/rtthread/cross/none/release/rtthread/libFinsh_gcc.a.o.dir/msh_file.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/ringblk_buf.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/dataqueue.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/waitqueue.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/pipe.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/completion.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/workqueue.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/ringbuffer.o",
"build/.objs/rtthread/cross/none/release/rtthread/libDeviceDrivers_gcc.a.o.dir/serial.o"
}
第二次
期待的结果
build正确
错误信息
如上
相关环境
请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:
其他信息
测试工程 xmake-test
有完整xmake.lua
The text was updated successfully, but these errors were encountered: